/******************************************************************************
* Copyright (C) 2018, Divideon.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*
* This library is also available under a commercial license.
* Please visit https://xvc.io/license/ for more information.
******************************************************************************/

#include "xvc_common_lib/transform_data.h"

namespace xvc {

const int16_t TransformData::kDct2Transform4[4][4] = {
  { 64, 64, 64, 64 },
  { 83, 36, -36, -83 },
  { 64, -64, -64, 64 },
  { 36, -83, 83, -36 }
};

const int16_t TransformData::kDct2Transform8[8][8] = {
  { 64, 64, 64, 64, 64, 64, 64, 64 },
  { 89, 75, 50, 18, -18, -50, -75, -89 },
  { 83, 36, -36, -83, -83, -36, 36, 83 },
  { 75, -18, -89, -50, 50, 89, 18, -75 },
  { 64, -64, -64, 64, 64, -64, -64, 64 },
  { 50, -89, 18, 75, -75, -18, 89, -50 },
  { 36, -83, 83, -36, -36, 83, -83, 36 },
  { 18, -50, 75, -89, 89, -75, 50, -18 }
};

const int16_t TransformData::kDct2Transform8High[8][8] = {
  { 256, 256, 256, 256, 256, 256, 256, 256, },
  { 355, 301, 201, 71, -71, -201, -301, -355, },
  { 334, 139, -139, -334, -334, -139, 139, 334, },
  { 301, -71, -355, -201, 201, 355, 71, -301, },
  { 256, -256, -256, 256, 256, -256, -256, 256, },
  { 201, -355, 71, 301, -301, -71, 355, -201, },
  { 139, -334, 334, -139, -139, 334, -334, 139, },
  { 71, -201, 301, -355, 355, -301, 201, -71, }
};

const int16_t TransformData::kDct2Transform16[16][16] = {
  { 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64 },   // NOLINT
  { 90,87,80,70,57,43,25,9,-9,-25,-43,-57,-70,-80,-87,-90 },   // NOLINT
  { 89,75,50,18,-18,-50,-75,-89,-89,-75,-50,-18,18,50,75,89 },   // NOLINT
  { 87,57,9,-43,-80,-90,-70,-25,25,70,90,80,43,-9,-57,-87 },   // NOLINT
  { 83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83 },   // NOLINT
  { 80,9,-70,-87,-25,57,90,43,-43,-90,-57,25,87,70,-9,-80 },   // NOLINT
  { 75,-18,-89,-50,50,89,18,-75,-75,18,89,50,-50,-89,-18,75 },   // NOLINT
  { 70,-43,-87,9,90,25,-80,-57,57,80,-25,-90,-9,87,43,-70 },   // NOLINT
  { 64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64 },   // NOLINT
  { 57,-80,-25,90,-9,-87,43,70,-70,-43,87,9,-90,25,80,-57 },   // NOLINT
  { 50,-89,18,75,-75,-18,89,-50,-50,89,-18,-75,75,18,-89,50 },   // NOLINT
  { 43,-90,57,25,-87,70,9,-80,80,-9,-70,87,-25,-57,90,-43 },   // NOLINT
  { 36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36 },   // NOLINT
  { 25,-70,90,-80,43,9,-57,87,-87,57,-9,-43,80,-90,70,-25 },   // NOLINT
  { 18,-50,75,-89,89,-75,50,-18,-18,50,-75,89,-89,75,-50,18 },   // NOLINT
  { 9,-25,43,-57,70,-80,87,-90,90,-87,80,-70,57,-43,25,-9 }    // NOLINT
};

const int16_t TransformData::kDct2Transform32[32][32] = {
  { 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64 },  // NOLINT
  { 90,90,88,85,82,78,73,67,61,54,46,38,31,22,13,4,-4,-13,-22,-31,-38,-46,-54,-61,-67,-73,-78,-82,-85,-88,-90,-90 },   // NOLINT
  { 90,87,80,70,57,43,25,9,-9,-25,-43,-57,-70,-80,-87,-90,-90,-87,-80,-70,-57,-43,-25,-9,9,25,43,57,70,80,87,90 },   // NOLINT
  { 90,82,67,46,22,-4,-31,-54,-73,-85,-90,-88,-78,-61,-38,-13,13,38,61,78,88,90,85,73,54,31,4,-22,-46,-67,-82,-90 },   // NOLINT
  { 89,75,50,18,-18,-50,-75,-89,-89,-75,-50,-18,18,50,75,89,89,75,50,18,-18,-50,-75,-89,-89,-75,-50,-18,18,50,75,89 },   // NOLINT
  { 88,67,31,-13,-54,-82,-90,-78,-46,-4,38,73,90,85,61,22,-22,-61,-85,-90,-73,-38,4,46,78,90,82,54,13,-31,-67,-88 },   // NOLINT
  { 87,57,9,-43,-80,-90,-70,-25,25,70,90,80,43,-9,-57,-87,-87,-57,-9,43,80,90,70,25,-25,-70,-90,-80,-43,9,57,87 },   // NOLINT
  { 85,46,-13,-67,-90,-73,-22,38,82,88,54,-4,-61,-90,-78,-31,31,78,90,61,4,-54,-88,-82,-38,22,73,90,67,13,-46,-85 },   // NOLINT
  { 83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83,83,36,-36,-83,-83,-36,36,83 },   // NOLINT
  { 82,22,-54,-90,-61,13,78,85,31,-46,-90,-67,4,73,88,38,-38,-88,-73,-4,67,90,46,-31,-85,-78,-13,61,90,54,-22,-82 },   // NOLINT
  { 80,9,-70,-87,-25,57,90,43,-43,-90,-57,25,87,70,-9,-80,-80,-9,70,87,25,-57,-90,-43,43,90,57,-25,-87,-70,9,80 },   // NOLINT
  { 78,-4,-82,-73,13,85,67,-22,-88,-61,31,90,54,-38,-90,-46,46,90,38,-54,-90,-31,61,88,22,-67,-85,-13,73,82,4,-78 },   // NOLINT
  { 75,-18,-89,-50,50,89,18,-75,-75,18,89,50,-50,-89,-18,75,75,-18,-89,-50,50,89,18,-75,-75,18,89,50,-50,-89,-18,75 },   // NOLINT
  { 73,-31,-90,-22,78,67,-38,-90,-13,82,61,-46,-88,-4,85,54,-54,-85,4,88,46,-61,-82,13,90,38,-67,-78,22,90,31,-73 },   // NOLINT
  { 70,-43,-87,9,90,25,-80,-57,57,80,-25,-90,-9,87,43,-70,-70,43,87,-9,-90,-25,80,57,-57,-80,25,90,9,-87,-43,70 },   // NOLINT
  { 67,-54,-78,38,85,-22,-90,4,90,13,-88,-31,82,46,-73,-61,61,73,-46,-82,31,88,-13,-90,-4,90,22,-85,-38,78,54,-67 },   // NOLINT
  { 64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64,64,-64,-64,64 },   // NOLINT
  { 61,-73,-46,82,31,-88,-13,90,-4,-90,22,85,-38,-78,54,67,-67,-54,78,38,-85,-22,90,4,-90,13,88,-31,-82,46,73,-61 },   // NOLINT
  { 57,-80,-25,90,-9,-87,43,70,-70,-43,87,9,-90,25,80,-57,-57,80,25,-90,9,87,-43,-70,70,43,-87,-9,90,-25,-80,57 },   // NOLINT
  { 54,-85,-4,88,-46,-61,82,13,-90,38,67,-78,-22,90,-31,-73,73,31,-90,22,78,-67,-38,90,-13,-82,61,46,-88,4,85,-54 },   // NOLINT
  { 50,-89,18,75,-75,-18,89,-50,-50,89,-18,-75,75,18,-89,50,50,-89,18,75,-75,-18,89,-50,-50,89,-18,-75,75,18,-89,50 },   // NOLINT
  { 46,-90,38,54,-90,31,61,-88,22,67,-85,13,73,-82,4,78,-78,-4,82,-73,-13,85,-67,-22,88,-61,-31,90,-54,-38,90,-46 },   // NOLINT
  { 43,-90,57,25,-87,70,9,-80,80,-9,-70,87,-25,-57,90,-43,-43,90,-57,-25,87,-70,-9,80,-80,9,70,-87,25,57,-90,43 },   // NOLINT
  { 38,-88,73,-4,-67,90,-46,-31,85,-78,13,61,-90,54,22,-82,82,-22,-54,90,-61,-13,78,-85,31,46,-90,67,4,-73,88,-38 },   // NOLINT
  { 36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36,36,-83,83,-36,-36,83,-83,36 },   // NOLINT
  { 31,-78,90,-61,4,54,-88,82,-38,-22,73,-90,67,-13,-46,85,-85,46,13,-67,90,-73,22,38,-82,88,-54,-4,61,-90,78,-31 },   // NOLINT
  { 25,-70,90,-80,43,9,-57,87,-87,57,-9,-43,80,-90,70,-25,-25,70,-90,80,-43,-9,57,-87,87,-57,9,43,-80,90,-70,25 },   // NOLINT
  { 22,-61,85,-90,73,-38,-4,46,-78,90,-82,54,-13,-31,67,-88,88,-67,31,13,-54,82,-90,78,-46,4,38,-73,90,-85,61,-22 },   // NOLINT
  { 18,-50,75,-89,89,-75,50,-18,-18,50,-75,89,-89,75,-50,18,18,-50,75,-89,89,-75,50,-18,-18,50,-75,89,-89,75,-50,18 },   // NOLINT
  { 13,-38,61,-78,88,-90,85,-73,54,-31,4,22,-46,67,-82,90,-90,82,-67,46,-22,-4,31,-54,73,-85,90,-88,78,-61,38,-13 },   // NOLINT
  { 9,-25,43,-57,70,-80,87,-90,90,-87,80,-70,57,-43,25,-9,-9,25,-43,57,-70,80,-87,90,-90,87,-80,70,-57,43,-25,9 },   // NOLINT
  { 4,-13,22,-31,38,-46,54,-61,67,-73,78,-82,85,-88,90,-90,90,-90,88,-85,82,-78,73,-67,61,-54,46,-38,31,-22,13,-4 }   // NOLINT
};

const int16_t TransformData::kDct2Transform2High[2][2] = {
  { 256, 256 },
  { 256, -256 },
};

const int16_t TransformData::kDct2Transform4High[4][4] = {
  { 256, 256, 256, 256 },
  { 334, 139, -139, -334 },
  { 256, -256, -256, 256 },
  { 139, -334, 334, -139 }
};

const int16_t TransformData::kDct2Transform16High[16][16] = {
  { 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256 },   // NOLINT
  { 360,346,319,280,230,171,105,35,-35,-105,-171,-230,-280,-319,-346,-360 },   // NOLINT
  { 355,301,201,71,-71,-201,-301,-355,-355,-301,-201,-71,71,201,301,355 },   // NOLINT
  { 346,230,35,-171,-319,-360,-280,-105,105,280,360,319,171,-35,-230,-346 },   // NOLINT
  { 334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334 },   // NOLINT
  { 319,35,-280,-346,-105,230,360,171,-171,-360,-230,105,346,280,-35,-319 },   // NOLINT
  { 301,-71,-355,-201,201,355,71,-301,-301,71,355,201,-201,-355,-71,301 },   // NOLINT
  { 280,-171,-346,35,360,105,-319,-230,230,319,-105,-360,-35,346,171,-280 },   // NOLINT
  { 256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256 },   // NOLINT
  { 230,-319,-105,360,-35,-346,171,280,-280,-171,346,35,-360,105,319,-230 },   // NOLINT
  { 201,-355,71,301,-301,-71,355,-201,-201,355,-71,-301,301,71,-355,201 },   // NOLINT
  { 171,-360,230,105,-346,280,35,-319,319,-35,-280,346,-105,-230,360,-171 },   // NOLINT
  { 139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139 },   // NOLINT
  { 105,-280,360,-319,171,35,-230,346,-346,230,-35,-171,319,-360,280,-105 },   // NOLINT
  { 71,-201,301,-355,355,-301,201,-71,-71,201,-301,355,-355,301,-201,71 },   // NOLINT
  { 35,-105,171,-230,280,-319,346,-360,360,-346,319,-280,230,-171,105,-35 }   // NOLINT
};

const int16_t TransformData::kDct2Transform32High[32][32] = {
  { 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256 },   // NOLINT
  { 362,358,351,341,327,311,291,268,243,216,186,155,122,88,53,18,-18,-53,-88,-122,-155,-186,-216,-243,-268,-291,-311,-327,-341,-351,-358,-362 },   // NOLINT
  { 360,346,319,280,230,171,105,35,-35,-105,-171,-230,-280,-319,-346,-360,-360,-346,-319,-280,-230,-171,-105,-35,35,105,171,230,280,319,346,360 },   // NOLINT
  { 358,327,268,186,88,-18,-122,-216,-291,-341,-362,-351,-311,-243,-155,-53,53,155,243,311,351,362,341,291,216,122,18,-88,-186,-268,-327,-358 },   // NOLINT
  { 355,301,201,71,-71,-201,-301,-355,-355,-301,-201,-71,71,201,301,355,355,301,201,71,-71,-201,-301,-355,-355,-301,-201,-71,71,201,301,355 },   // NOLINT
  { 351,268,122,-53,-216,-327,-362,-311,-186,-18,155,291,358,341,243,88,-88,-243,-341,-358,-291,-155,18,186,311,362,327,216,53,-122,-268,-351 },   // NOLINT
  { 346,230,35,-171,-319,-360,-280,-105,105,280,360,319,171,-35,-230,-346,-346,-230,-35,171,319,360,280,105,-105,-280,-360,-319,-171,35,230,346 },   // NOLINT
  { 341,186,-53,-268,-362,-291,-88,155,327,351,216,-18,-243,-358,-311,-122,122,311,358,243,18,-216,-351,-327,-155,88,291,362,268,53,-186,-341 },   // NOLINT
  { 334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334 },   // NOLINT
  { 327,88,-216,-362,-243,53,311,341,122,-186,-358,-268,18,291,351,155,-155,-351,-291,-18,268,358,186,-122,-341,-311,-53,243,362,216,-88,-327 },   // NOLINT
  { 319,35,-280,-346,-105,230,360,171,-171,-360,-230,105,346,280,-35,-319,-319,-35,280,346,105,-230,-360,-171,171,360,230,-105,-346,-280,35,319 },   // NOLINT
  { 311,-18,-327,-291,53,341,268,-88,-351,-243,122,358,216,-155,-362,-186,186,362,155,-216,-358,-122,243,351,88,-268,-341,-53,291,327,18,-311 },   // NOLINT
  { 301,-71,-355,-201,201,355,71,-301,-301,71,355,201,-201,-355,-71,301,301,-71,-355,-201,201,355,71,-301,-301,71,355,201,-201,-355,-71,301 },   // NOLINT
  { 291,-122,-362,-88,311,268,-155,-358,-53,327,243,-186,-351,-18,341,216,-216,-341,18,351,186,-243,-327,53,358,155,-268,-311,88,362,122,-291 },   // NOLINT
  { 280,-171,-346,35,360,105,-319,-230,230,319,-105,-360,-35,346,171,-280,-280,171,346,-35,-360,-105,319,230,-230,-319,105,360,35,-346,-171,280 },   // NOLINT
  { 268,-216,-311,155,341,-88,-358,18,362,53,-351,-122,327,186,-291,-243,243,291,-186,-327,122,351,-53,-362,-18,358,88,-341,-155,311,216,-268 },   // NOLINT
  { 256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256 },   // NOLINT
  { 243,-291,-186,327,122,-351,-53,362,-18,-358,88,341,-155,-311,216,268,-268,-216,311,155,-341,-88,358,18,-362,53,351,-122,-327,186,291,-243 },   // NOLINT
  { 230,-319,-105,360,-35,-346,171,280,-280,-171,346,35,-360,105,319,-230,-230,319,105,-360,35,346,-171,-280,280,171,-346,-35,360,-105,-319,230 },   // NOLINT
  { 216,-341,-18,351,-186,-243,327,53,-358,155,268,-311,-88,362,-122,-291,291,122,-362,88,311,-268,-155,358,-53,-327,243,186,-351,18,341,-216 },   // NOLINT
  { 201,-355,71,301,-301,-71,355,-201,-201,355,-71,-301,301,71,-355,201,201,-355,71,301,-301,-71,355,-201,-201,355,-71,-301,301,71,-355,201 },   // NOLINT
  { 186,-362,155,216,-358,122,243,-351,88,268,-341,53,291,-327,18,311,-311,-18,327,-291,-53,341,-268,-88,351,-243,-122,358,-216,-155,362,-186 },   // NOLINT
  { 171,-360,230,105,-346,280,35,-319,319,-35,-280,346,-105,-230,360,-171,-171,360,-230,-105,346,-280,-35,319,-319,35,280,-346,105,230,-360,171 },   // NOLINT
  { 155,-351,291,-18,-268,358,-186,-122,341,-311,53,243,-362,216,88,-327,327,-88,-216,362,-243,-53,311,-341,122,186,-358,268,18,-291,351,-155 },   // NOLINT
  { 139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139 },   // NOLINT
  { 122,-311,358,-243,18,216,-351,327,-155,-88,291,-362,268,-53,-186,341,-341,186,53,-268,362,-291,88,155,-327,351,-216,-18,243,-358,311,-122 },   // NOLINT
  { 105,-280,360,-319,171,35,-230,346,-346,230,-35,-171,319,-360,280,-105,-105,280,-360,319,-171,-35,230,-346,346,-230,35,171,-319,360,-280,105 },   // NOLINT
  { 88,-243,341,-358,291,-155,-18,186,-311,362,-327,216,-53,-122,268,-351,351,-268,122,53,-216,327,-362,311,-186,18,155,-291,358,-341,243,-88 },   // NOLINT
  { 71,-201,301,-355,355,-301,201,-71,-71,201,-301,355,-355,301,-201,71,71,-201,301,-355,355,-301,201,-71,-71,201,-301,355,-355,301,-201,71 },   // NOLINT
  { 53,-155,243,-311,351,-362,341,-291,216,-122,18,88,-186,268,-327,358,-358,327,-268,186,-88,-18,122,-216,291,-341,362,-351,311,-243,155,-53 },   // NOLINT
  { 35,-105,171,-230,280,-319,346,-360,360,-346,319,-280,230,-171,105,-35,-35,105,-171,230,-280,319,-346,360,-360,346,-319,280,-230,171,-105,35 },   // NOLINT
  { 18,-53,88,-122,155,-186,216,-243,268,-291,311,-327,341,-351,358,-362,362,-358,351,-341,327,-311,291,-268,243,-216,186,-155,122,-88,53,-18 },   // NOLINT
};

const int16_t TransformData::kDct2Transform64High[64][64] = {
  { 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256 },   // NOLINT
  { 362,361,359,357,353,349,344,338,331,323,315,306,296,285,274,262,250,236,223,208,194,178,163,147,130,114,97,79,62,44,27,9,-9,-27,-44,-62,-79,-97,-114,-130,-147,-163,-178,-194,-208,-223,-236,-250,-262,-274,-285,-296,-306,-315,-323,-331,-338,-344,-349,-353,-357,-359,-361,-362 },   // NOLINT
  { 362,358,351,341,327,311,291,268,243,216,186,155,122,88,53,18,-18,-53,-88,-122,-155,-186,-216,-243,-268,-291,-311,-327,-341,-351,-358,-362,-362,-358,-351,-341,-327,-311,-291,-268,-243,-216,-186,-155,-122,-88,-53,-18,18,53,88,122,155,186,216,243,268,291,311,327,341,351,358,362 },   // NOLINT
  { 361,353,338,315,285,250,208,163,114,62,9,-44,-97,-147,-194,-236,-274,-306,-331,-349,-359,-362,-357,-344,-323,-296,-262,-223,-178,-130,-79,-27,27,79,130,178,223,262,296,323,344,357,362,359,349,331,306,274,236,194,147,97,44,-9,-62,-114,-163,-208,-250,-285,-315,-338,-353,-361 },   // NOLINT
  { 360,346,319,280,230,171,105,35,-35,-105,-171,-230,-280,-319,-346,-360,-360,-346,-319,-280,-230,-171,-105,-35,35,105,171,230,280,319,346,360,360,346,319,280,230,171,105,35,-35,-105,-171,-230,-280,-319,-346,-360,-360,-346,-319,-280,-230,-171,-105,-35,35,105,171,230,280,319,346,360 },   // NOLINT
  { 359,338,296,236,163,79,-9,-97,-178,-250,-306,-344,-361,-357,-331,-285,-223,-147,-62,27,114,194,262,315,349,362,353,323,274,208,130,44,-44,-130,-208,-274,-323,-353,-362,-349,-315,-262,-194,-114,-27,62,147,223,285,331,357,361,344,306,250,178,97,9,-79,-163,-236,-296,-338,-359 },   // NOLINT
  { 358,327,268,186,88,-18,-122,-216,-291,-341,-362,-351,-311,-243,-155,-53,53,155,243,311,351,362,341,291,216,122,18,-88,-186,-268,-327,-358,-358,-327,-268,-186,-88,18,122,216,291,341,362,351,311,243,155,53,-53,-155,-243,-311,-351,-362,-341,-291,-216,-122,-18,88,186,268,327,358 },   // NOLINT
  { 357,315,236,130,9,-114,-223,-306,-353,-359,-323,-250,-147,-27,97,208,296,349,361,331,262,163,44,-79,-194,-285,-344,-362,-338,-274,-178,-62,62,178,274,338,362,344,285,194,79,-44,-163,-262,-331,-361,-349,-296,-208,-97,27,147,250,323,359,353,306,223,114,-9,-130,-236,-315,-357 },   // NOLINT
  { 355,301,201,71,-71,-201,-301,-355,-355,-301,-201,-71,71,201,301,355,355,301,201,71,-71,-201,-301,-355,-355,-301,-201,-71,71,201,301,355,355,301,201,71,-71,-201,-301,-355,-355,-301,-201,-71,71,201,301,355,355,301,201,71,-71,-201,-301,-355,-355,-301,-201,-71,71,201,301,355 },   // NOLINT
  { 353,285,163,9,-147,-274,-349,-357,-296,-178,-27,130,262,344,359,306,194,44,-114,-250,-338,-361,-315,-208,-62,97,236,331,362,323,223,79,-79,-223,-323,-362,-331,-236,-97,62,208,315,361,338,250,114,-44,-194,-306,-359,-344,-262,-130,27,178,296,357,349,274,147,-9,-163,-285,-353 },   // NOLINT
  { 351,268,122,-53,-216,-327,-362,-311,-186,-18,155,291,358,341,243,88,-88,-243,-341,-358,-291,-155,18,186,311,362,327,216,53,-122,-268,-351,-351,-268,-122,53,216,327,362,311,186,18,-155,-291,-358,-341,-243,-88,88,243,341,358,291,155,-18,-186,-311,-362,-327,-216,-53,122,268,351 },   // NOLINT
  { 349,250,79,-114,-274,-357,-338,-223,-44,147,296,361,323,194,9,-178,-315,-362,-306,-163,27,208,331,359,285,130,-62,-236,-344,-353,-262,-97,97,262,353,344,236,62,-130,-285,-359,-331,-208,-27,163,306,362,315,178,-9,-194,-323,-361,-296,-147,44,223,338,357,274,114,-79,-250,-349 },   // NOLINT
  { 346,230,35,-171,-319,-360,-280,-105,105,280,360,319,171,-35,-230,-346,-346,-230,-35,171,319,360,280,105,-105,-280,-360,-319,-171,35,230,346,346,230,35,-171,-319,-360,-280,-105,105,280,360,319,171,-35,-230,-346,-346,-230,-35,171,319,360,280,105,-105,-280,-360,-319,-171,35,230,346 },   // NOLINT
  { 344,208,-9,-223,-349,-338,-194,27,236,353,331,178,-44,-250,-357,-323,-163,62,262,359,315,147,-79,-274,-361,-306,-130,97,285,362,296,114,-114,-296,-362,-285,-97,130,306,361,274,79,-147,-315,-359,-262,-62,163,323,357,250,44,-178,-331,-353,-236,-27,194,338,349,223,9,-208,-344 },   // NOLINT
  { 341,186,-53,-268,-362,-291,-88,155,327,351,216,-18,-243,-358,-311,-122,122,311,358,243,18,-216,-351,-327,-155,88,291,362,268,53,-186,-341,-341,-186,53,268,362,291,88,-155,-327,-351,-216,18,243,358,311,122,-122,-311,-358,-243,-18,216,351,327,155,-88,-291,-362,-268,-53,186,341 },   // NOLINT
  { 338,163,-97,-306,-357,-223,27,262,362,274,44,-208,-353,-315,-114,147,331,344,178,-79,-296,-359,-236,9,250,361,285,62,-194,-349,-323,-130,130,323,349,194,-62,-285,-361,-250,-9,236,359,296,79,-178,-344,-331,-147,114,315,353,208,-44,-274,-362,-262,-27,223,357,306,97,-163,-338 },   // NOLINT
  { 334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334,334,139,-139,-334,-334,-139,139,334 },   // NOLINT
  { 331,114,-178,-353,-296,-44,236,362,250,-27,-285,-357,-194,97,323,338,130,-163,-349,-306,-62,223,361,262,-9,-274,-359,-208,79,315,344,147,-147,-344,-315,-79,208,359,274,9,-262,-361,-223,62,306,349,163,-130,-338,-323,-97,194,357,285,27,-250,-362,-236,44,296,353,178,-114,-331 },   // NOLINT
  { 327,88,-216,-362,-243,53,311,341,122,-186,-358,-268,18,291,351,155,-155,-351,-291,-18,268,358,186,-122,-341,-311,-53,243,362,216,-88,-327,-327,-88,216,362,243,-53,-311,-341,-122,186,358,268,-18,-291,-351,-155,155,351,291,18,-268,-358,-186,122,341,311,53,-243,-362,-216,88,327 },   // NOLINT
  { 323,62,-250,-359,-178,147,353,274,-27,-306,-338,-97,223,362,208,-114,-344,-296,-9,285,349,130,-194,-361,-236,79,331,315,44,-262,-357,-163,163,357,262,-44,-315,-331,-79,236,361,194,-130,-349,-285,9,296,344,114,-208,-362,-223,97,338,306,27,-274,-353,-147,178,359,250,-62,-323 },   // NOLINT
  { 319,35,-280,-346,-105,230,360,171,-171,-360,-230,105,346,280,-35,-319,-319,-35,280,346,105,-230,-360,-171,171,360,230,-105,-346,-280,35,319,319,35,-280,-346,-105,230,360,171,-171,-360,-230,105,346,280,-35,-319,-319,-35,280,346,105,-230,-360,-171,171,360,230,-105,-346,-280,35,319 },   // NOLINT
  { 315,9,-306,-323,-27,296,331,44,-285,-338,-62,274,344,79,-262,-349,-97,250,353,114,-236,-357,-130,223,359,147,-208,-361,-163,194,362,178,-178,-362,-194,163,361,208,-147,-359,-223,130,357,236,-114,-353,-250,97,349,262,-79,-344,-274,62,338,285,-44,-331,-296,27,323,306,-9,-315 },   // NOLINT
  { 311,-18,-327,-291,53,341,268,-88,-351,-243,122,358,216,-155,-362,-186,186,362,155,-216,-358,-122,243,351,88,-268,-341,-53,291,327,18,-311,-311,18,327,291,-53,-341,-268,88,351,243,-122,-358,-216,155,362,186,-186,-362,-155,216,358,122,-243,-351,-88,268,341,53,-291,-327,-18,311 },   // NOLINT
  { 306,-44,-344,-250,130,361,178,-208,-357,-97,274,331,9,-323,-285,79,353,223,-163,-362,-147,236,349,62,-296,-315,27,338,262,-114,-359,-194,194,359,114,-262,-338,-27,315,296,-62,-349,-236,147,362,163,-223,-353,-79,285,323,-9,-331,-274,97,357,208,-178,-361,-130,250,344,44,-306 },   // NOLINT
  { 301,-71,-355,-201,201,355,71,-301,-301,71,355,201,-201,-355,-71,301,301,-71,-355,-201,201,355,71,-301,-301,71,355,201,-201,-355,-71,301,301,-71,-355,-201,201,355,71,-301,-301,71,355,201,-201,-355,-71,301,301,-71,-355,-201,201,355,71,-301,-301,71,355,201,-201,-355,-71,301 },   // NOLINT
  { 296,-97,-361,-147,262,323,-44,-353,-194,223,344,9,-338,-236,178,357,62,-315,-274,130,362,114,-285,-306,79,359,163,-250,-331,27,349,208,-208,-349,-27,331,250,-163,-359,-79,306,285,-114,-362,-130,274,315,-62,-357,-178,236,338,-9,-344,-223,194,353,44,-323,-262,147,361,97,-296 },   // NOLINT
  { 291,-122,-362,-88,311,268,-155,-358,-53,327,243,-186,-351,-18,341,216,-216,-341,18,351,186,-243,-327,53,358,155,-268,-311,88,362,122,-291,-291,122,362,88,-311,-268,155,358,53,-327,-243,186,351,18,-341,-216,216,341,-18,-351,-186,243,327,-53,-358,-155,268,311,-88,-362,-122,291 },   // NOLINT
  { 285,-147,-357,-27,344,194,-250,-315,97,362,79,-323,-236,208,338,-44,-359,-130,296,274,-163,-353,-9,349,178,-262,-306,114,361,62,-331,-223,223,331,-62,-361,-114,306,262,-178,-349,9,353,163,-274,-296,130,359,44,-338,-208,236,323,-79,-362,-97,315,250,-194,-344,27,357,147,-285 },   // NOLINT
  { 280,-171,-346,35,360,105,-319,-230,230,319,-105,-360,-35,346,171,-280,-280,171,346,-35,-360,-105,319,230,-230,-319,105,360,35,-346,-171,280,280,-171,-346,35,360,105,-319,-230,230,319,-105,-360,-35,346,171,-280,-280,171,346,-35,-360,-105,319,230,-230,-319,105,360,35,-346,-171,280 },   // NOLINT
  { 274,-194,-331,97,359,9,-357,-114,323,208,-262,-285,178,338,-79,-361,-27,353,130,-315,-223,250,296,-163,-344,62,362,44,-349,-147,306,236,-236,-306,147,349,-44,-362,-62,344,163,-296,-250,223,315,-130,-353,27,361,79,-338,-178,285,262,-208,-323,114,357,-9,-359,-97,331,194,-274 },   // NOLINT
  { 268,-216,-311,155,341,-88,-358,18,362,53,-351,-122,327,186,-291,-243,243,291,-186,-327,122,351,-53,-362,-18,358,88,-341,-155,311,216,-268,-268,216,311,-155,-341,88,358,-18,-362,-53,351,122,-327,-186,291,243,-243,-291,186,327,-122,-351,53,362,18,-358,-88,341,155,-311,-216,268 },   // NOLINT
  { 262,-236,-285,208,306,-178,-323,147,338,-114,-349,79,357,-44,-361,9,362,27,-359,-62,353,97,-344,-130,331,163,-315,-194,296,223,-274,-250,250,274,-223,-296,194,315,-163,-331,130,344,-97,-353,62,359,-27,-362,-9,361,44,-357,-79,349,114,-338,-147,323,178,-306,-208,285,236,-262 },   // NOLINT
  { 256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256,256,-256,-256,256 },   // NOLINT
  { 250,-274,-223,296,194,-315,-163,331,130,-344,-97,353,62,-359,-27,362,-9,-361,44,357,-79,-349,114,338,-147,-323,178,306,-208,-285,236,262,-262,-236,285,208,-306,-178,323,147,-338,-114,349,79,-357,-44,361,9,-362,27,359,-62,-353,97,344,-130,-331,163,315,-194,-296,223,274,-250 },   // NOLINT
  { 243,-291,-186,327,122,-351,-53,362,-18,-358,88,341,-155,-311,216,268,-268,-216,311,155,-341,-88,358,18,-362,53,351,-122,-327,186,291,-243,-243,291,186,-327,-122,351,53,-362,18,358,-88,-341,155,311,-216,-268,268,216,-311,-155,341,88,-358,-18,362,-53,-351,122,327,-186,-291,243 },   // NOLINT
  { 236,-306,-147,349,44,-362,62,344,-163,-296,250,223,-315,-130,353,27,-361,79,338,-178,-285,262,208,-323,-114,357,9,-359,97,331,-194,-274,274,194,-331,-97,359,-9,-357,114,323,-208,-262,285,178,-338,-79,361,-27,-353,130,315,-223,-250,296,163,-344,-62,362,-44,-349,147,306,-236 },   // NOLINT
  { 230,-319,-105,360,-35,-346,171,280,-280,-171,346,35,-360,105,319,-230,-230,319,105,-360,35,346,-171,-280,280,171,-346,-35,360,-105,-319,230,230,-319,-105,360,-35,-346,171,280,-280,-171,346,35,-360,105,319,-230,-230,319,105,-360,35,346,-171,-280,280,171,-346,-35,360,-105,-319,230 },   // NOLINT
  { 223,-331,-62,361,-114,-306,262,178,-349,-9,353,-163,-274,296,130,-359,44,338,-208,-236,323,79,-362,97,315,-250,-194,344,27,-357,147,285,-285,-147,357,-27,-344,194,250,-315,-97,362,-79,-323,236,208,-338,-44,359,-130,-296,274,163,-353,9,349,-178,-262,306,114,-361,62,331,-223 },   // NOLINT
  { 216,-341,-18,351,-186,-243,327,53,-358,155,268,-311,-88,362,-122,-291,291,122,-362,88,311,-268,-155,358,-53,-327,243,186,-351,18,341,-216,-216,341,18,-351,186,243,-327,-53,358,-155,-268,311,88,-362,122,291,-291,-122,362,-88,-311,268,155,-358,53,327,-243,-186,351,-18,-341,216 },   // NOLINT
  { 208,-349,27,331,-250,-163,359,-79,-306,285,114,-362,130,274,-315,-62,357,-178,-236,338,9,-344,223,194,-353,44,323,-262,-147,361,-97,-296,296,97,-361,147,262,-323,-44,353,-194,-223,344,-9,-338,236,178,-357,62,315,-274,-130,362,-114,-285,306,79,-359,163,250,-331,-27,349,-208 },   // NOLINT
  { 201,-355,71,301,-301,-71,355,-201,-201,355,-71,-301,301,71,-355,201,201,-355,71,301,-301,-71,355,-201,-201,355,-71,-301,301,71,-355,201,201,-355,71,301,-301,-71,355,-201,-201,355,-71,-301,301,71,-355,201,201,-355,71,301,-301,-71,355,-201,-201,355,-71,-301,301,71,-355,201 },   // NOLINT
  { 194,-359,114,262,-338,27,315,-296,-62,349,-236,-147,362,-163,-223,353,-79,-285,323,9,-331,274,97,-357,208,178,-361,130,250,-344,44,306,-306,-44,344,-250,-130,361,-178,-208,357,-97,-274,331,-9,-323,285,79,-353,223,163,-362,147,236,-349,62,296,-315,-27,338,-262,-114,359,-194 },   // NOLINT
  { 186,-362,155,216,-358,122,243,-351,88,268,-341,53,291,-327,18,311,-311,-18,327,-291,-53,341,-268,-88,351,-243,-122,358,-216,-155,362,-186,-186,362,-155,-216,358,-122,-243,351,-88,-268,341,-53,-291,327,-18,-311,311,18,-327,291,53,-341,268,88,-351,243,122,-358,216,155,-362,186 },   // NOLINT
  { 178,-362,194,163,-361,208,147,-359,223,130,-357,236,114,-353,250,97,-349,262,79,-344,274,62,-338,285,44,-331,296,27,-323,306,9,-315,315,-9,-306,323,-27,-296,331,-44,-285,338,-62,-274,344,-79,-262,349,-97,-250,353,-114,-236,357,-130,-223,359,-147,-208,361,-163,-194,362,-178 },   // NOLINT
  { 171,-360,230,105,-346,280,35,-319,319,-35,-280,346,-105,-230,360,-171,-171,360,-230,-105,346,-280,-35,319,-319,35,280,-346,105,230,-360,171,171,-360,230,105,-346,280,35,-319,319,-35,-280,346,-105,-230,360,-171,-171,360,-230,-105,346,-280,-35,319,-319,35,280,-346,105,230,-360,171 },   // NOLINT
  { 163,-357,262,44,-315,331,-79,-236,361,-194,-130,349,-285,-9,296,-344,114,208,-362,223,97,-338,306,-27,-274,353,-147,-178,359,-250,-62,323,-323,62,250,-359,178,147,-353,274,27,-306,338,-97,-223,362,-208,-114,344,-296,9,285,-349,130,194,-361,236,79,-331,315,-44,-262,357,-163 },   // NOLINT
  { 155,-351,291,-18,-268,358,-186,-122,341,-311,53,243,-362,216,88,-327,327,-88,-216,362,-243,-53,311,-341,122,186,-358,268,18,-291,351,-155,-155,351,-291,18,268,-358,186,122,-341,311,-53,-243,362,-216,-88,327,-327,88,216,-362,243,53,-311,341,-122,-186,358,-268,-18,291,-351,155 },   // NOLINT
  { 147,-344,315,-79,-208,359,-274,9,262,-361,223,62,-306,349,-163,-130,338,-323,97,194,-357,285,-27,-250,362,-236,-44,296,-353,178,114,-331,331,-114,-178,353,-296,44,236,-362,250,27,-285,357,-194,-97,323,-338,130,163,-349,306,-62,-223,361,-262,-9,274,-359,208,79,-315,344,-147 },   // NOLINT
  { 139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139,139,-334,334,-139,-139,334,-334,139 },   // NOLINT
  { 130,-323,349,-194,-62,285,-361,250,-9,-236,359,-296,79,178,-344,331,-147,-114,315,-353,208,44,-274,362,-262,27,223,-357,306,-97,-163,338,-338,163,97,-306,357,-223,-27,262,-362,274,-44,-208,353,-315,114,147,-331,344,-178,-79,296,-359,236,9,-250,361,-285,62,194,-349,323,-130 },   // NOLINT
  { 122,-311,358,-243,18,216,-351,327,-155,-88,291,-362,268,-53,-186,341,-341,186,53,-268,362,-291,88,155,-327,351,-216,-18,243,-358,311,-122,-122,311,-358,243,-18,-216,351,-327,155,88,-291,362,-268,53,186,-341,341,-186,-53,268,-362,291,-88,-155,327,-351,216,18,-243,358,-311,122 },   // NOLINT
  { 114,-296,362,-285,97,130,-306,361,-274,79,147,-315,359,-262,62,163,-323,357,-250,44,178,-331,353,-236,27,194,-338,349,-223,9,208,-344,344,-208,-9,223,-349,338,-194,-27,236,-353,331,-178,-44,250,-357,323,-163,-62,262,-359,315,-147,-79,274,-361,306,-130,-97,285,-362,296,-114 },   // NOLINT
  { 105,-280,360,-319,171,35,-230,346,-346,230,-35,-171,319,-360,280,-105,-105,280,-360,319,-171,-35,230,-346,346,-230,35,171,-319,360,-280,105,105,-280,360,-319,171,35,-230,346,-346,230,-35,-171,319,-360,280,-105,-105,280,-360,319,-171,-35,230,-346,346,-230,35,171,-319,360,-280,105 },   // NOLINT
  { 97,-262,353,-344,236,-62,-130,285,-359,331,-208,27,163,-306,362,-315,178,9,-194,323,-361,296,-147,-44,223,-338,357,-274,114,79,-250,349,-349,250,-79,-114,274,-357,338,-223,44,147,-296,361,-323,194,-9,-178,315,-362,306,-163,-27,208,-331,359,-285,130,62,-236,344,-353,262,-97 },   // NOLINT
  { 88,-243,341,-358,291,-155,-18,186,-311,362,-327,216,-53,-122,268,-351,351,-268,122,53,-216,327,-362,311,-186,18,155,-291,358,-341,243,-88,-88,243,-341,358,-291,155,18,-186,311,-362,327,-216,53,122,-268,351,-351,268,-122,-53,216,-327,362,-311,186,-18,-155,291,-358,341,-243,88 },   // NOLINT
  { 79,-223,323,-362,331,-236,97,62,-208,315,-361,338,-250,114,44,-194,306,-359,344,-262,130,27,-178,296,-357,349,-274,147,9,-163,285,-353,353,-285,163,-9,-147,274,-349,357,-296,178,-27,-130,262,-344,359,-306,194,-44,-114,250,-338,361,-315,208,-62,-97,236,-331,362,-323,223,-79 },   // NOLINT
  { 71,-201,301,-355,355,-301,201,-71,-71,201,-301,355,-355,301,-201,71,71,-201,301,-355,355,-301,201,-71,-71,201,-301,355,-355,301,-201,71,71,-201,301,-355,355,-301,201,-71,-71,201,-301,355,-355,301,-201,71,71,-201,301,-355,355,-301,201,-71,-71,201,-301,355,-355,301,-201,71 },   // NOLINT
  { 62,-178,274,-338,362,-344,285,-194,79,44,-163,262,-331,361,-349,296,-208,97,27,-147,250,-323,359,-353,306,-223,114,9,-130,236,-315,357,-357,315,-236,130,-9,-114,223,-306,353,-359,323,-250,147,-27,-97,208,-296,349,-361,331,-262,163,-44,-79,194,-285,344,-362,338,-274,178,-62 },   // NOLINT
  { 53,-155,243,-311,351,-362,341,-291,216,-122,18,88,-186,268,-327,358,-358,327,-268,186,-88,-18,122,-216,291,-341,362,-351,311,-243,155,-53,-53,155,-243,311,-351,362,-341,291,-216,122,-18,-88,186,-268,327,-358,358,-327,268,-186,88,18,-122,216,-291,341,-362,351,-311,243,-155,53 },   // NOLINT
  { 44,-130,208,-274,323,-353,362,-349,315,-262,194,-114,27,62,-147,223,-285,331,-357,361,-344,306,-250,178,-97,9,79,-163,236,-296,338,-359,359,-338,296,-236,163,-79,-9,97,-178,250,-306,344,-361,357,-331,285,-223,147,-62,-27,114,-194,262,-315,349,-362,353,-323,274,-208,130,-44 },   // NOLINT
  { 35,-105,171,-230,280,-319,346,-360,360,-346,319,-280,230,-171,105,-35,-35,105,-171,230,-280,319,-346,360,-360,346,-319,280,-230,171,-105,35,35,-105,171,-230,280,-319,346,-360,360,-346,319,-280,230,-171,105,-35,-35,105,-171,230,-280,319,-346,360,-360,346,-319,280,-230,171,-105,35 },   // NOLINT
  { 27,-79,130,-178,223,-262,296,-323,344,-357,362,-359,349,-331,306,-274,236,-194,147,-97,44,9,-62,114,-163,208,-250,285,-315,338,-353,361,-361,353,-338,315,-285,250,-208,163,-114,62,-9,-44,97,-147,194,-236,274,-306,331,-349,359,-362,357,-344,323,-296,262,-223,178,-130,79,-27 },   // NOLINT
  { 18,-53,88,-122,155,-186,216,-243,268,-291,311,-327,341,-351,358,-362,362,-358,351,-341,327,-311,291,-268,243,-216,186,-155,122,-88,53,-18,-18,53,-88,122,-155,186,-216,243,-268,291,-311,327,-341,351,-358,362,-362,358,-351,341,-327,311,-291,268,-243,216,-186,155,-122,88,-53,18 },   // NOLINT
  { 9,-27,44,-62,79,-97,114,-130,147,-163,178,-194,208,-223,236,-250,262,-274,285,-296,306,-315,323,-331,338,-344,349,-353,357,-359,361,-362,362,-361,359,-357,353,-349,344,-338,331,-323,315,-306,296,-285,274,-262,250,-236,223,-208,194,-178,163,-147,130,-114,97,-79,62,-44,27,-9 },   // NOLINT
};

const int16_t TransformData::kDct5Transform4High[4 * 4] = {
  194,274,274,274,   // NOLINT
  274,241,-86,-349,   // NOLINT
  274,-86,-349,241,   // NOLINT
  274,-349,241,-86,   // NOLINT
};

const int16_t TransformData::kDct5Transform8High[8 * 8] = {
  187,264,264,264,264,264,264,264,   // NOLINT
  264,342,250,116,-39,-187,-303,-366,   // NOLINT
  264,250,-39,-303,-366,-187,116,342,   // NOLINT
  264,116,-303,-303,116,374,116,-303,   // NOLINT
  264,-39,-366,116,342,-187,-303,250,   // NOLINT
  264,-187,-187,374,-187,-187,374,-187,   // NOLINT
  264,-303,116,116,-303,374,-303,116,   // NOLINT
  264,-366,342,-303,250,-187,116,-39,   // NOLINT
};

const int16_t TransformData::kDct5Transform16High[16 * 16] = {
  184,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,   // NOLINT
  260,360,338,302,253,195,128,56,-19,-92,-162,-225,-279,-322,-351,-366,   // NOLINT
  260,338,253,128,-19,-162,-279,-351,-366,-322,-225,-92,56,195,302,360,   // NOLINT
  260,302,128,-92,-279,-366,-322,-162,56,253,360,338,195,-19,-225,-351,   // NOLINT
  260,253,-19,-279,-366,-225,56,302,360,195,-92,-322,-351,-162,128,338,   // NOLINT
  260,195,-162,-366,-225,128,360,253,-92,-351,-279,56,338,302,-19,-322,   // NOLINT
  260,128,-279,-322,56,360,195,-225,-351,-19,338,253,-162,-366,-92,302,   // NOLINT
  260,56,-351,-162,302,253,-225,-322,128,360,-19,-366,-92,338,195,-279,   // NOLINT
  260,-19,-366,56,360,-92,-351,128,338,-162,-322,195,302,-225,-279,253,   // NOLINT
  260,-92,-322,253,195,-351,-19,360,-162,-279,302,128,-366,56,338,-225,   // NOLINT
  260,-162,-225,360,-92,-279,338,-19,-322,302,56,-351,253,128,-366,195,   // NOLINT
  260,-225,-92,338,-322,56,253,-366,195,128,-351,302,-19,-279,360,-162,   // NOLINT
  260,-279,56,195,-351,338,-162,-92,302,-366,253,-19,-225,360,-322,128,   // NOLINT
  260,-322,195,-19,-162,302,-366,338,-225,56,128,-279,360,-351,253,-92,   // NOLINT
  260,-351,302,-225,128,-19,-92,195,-279,338,-366,360,-322,253,-162,56,   // NOLINT
  260,-366,360,-351,338,-322,302,-279,253,-225,195,-162,128,-92,56,-19,   // NOLINT
};

const int16_t TransformData::kDct5Transform32High[32 * 32] = {
  182,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,258,   // NOLINT
  258,363,358,349,336,320,301,280,255,228,198,166,133,99,63,27,-9,-45,-81,-116,-150,-182,-213,-241,-267,-291,-311,-329,-343,-354,-361,-364,   // NOLINT
  258,358,336,301,255,198,133,63,-9,-81,-150,-213,-267,-311,-343,-361,-364,-354,-329,-291,-241,-182,-116,-45,27,99,166,228,280,320,349,363,   // NOLINT
  258,349,301,228,133,27,-81,-182,-267,-329,-361,-361,-329,-267,-182,-81,27,133,228,301,349,365,349,301,228,133,27,-81,-182,-267,-329,-361,   // NOLINT
  258,336,255,133,-9,-150,-267,-343,-364,-329,-241,-116,27,166,280,349,363,320,228,99,-45,-182,-291,-354,-361,-311,-213,-81,63,198,301,358,   // NOLINT
  258,320,198,27,-150,-291,-361,-343,-241,-81,99,255,349,358,280,133,-45,-213,-329,-364,-311,-182,-9,166,301,363,336,228,63,-116,-267,-354,   // NOLINT
  258,301,133,-81,-267,-361,-329,-182,27,228,349,349,228,27,-182,-329,-361,-267,-81,133,301,365,301,133,-81,-267,-361,-329,-182,27,228,349,   // NOLINT
  258,280,63,-182,-343,-343,-182,63,280,365,280,63,-182,-343,-343,-182,63,280,365,280,63,-182,-343,-343,-182,63,280,365,280,63,-182,-343,   // NOLINT
  258,255,-9,-267,-364,-241,27,280,363,228,-45,-291,-361,-213,63,301,358,198,-81,-311,-354,-182,99,320,349,166,-116,-329,-343,-150,133,336,   // NOLINT
  258,228,-81,-329,-329,-81,228,365,228,-81,-329,-329,-81,228,365,228,-81,-329,-329,-81,228,365,228,-81,-329,-329,-81,228,365,228,-81,-329,   // NOLINT
  258,198,-150,-361,-241,99,349,280,-45,-329,-311,-9,301,336,63,-267,-354,-116,228,363,166,-182,-364,-213,133,358,255,-81,-343,-291,27,320,   // NOLINT
  258,166,-213,-361,-116,255,349,63,-291,-329,-9,320,301,-45,-343,-267,99,358,228,-150,-364,-182,198,363,133,-241,-354,-81,280,336,27,-311,   // NOLINT
  258,133,-267,-329,27,349,228,-182,-361,-81,301,301,-81,-361,-182,228,349,27,-329,-267,133,365,133,-267,-329,27,349,228,-182,-361,-81,301,   // NOLINT
  258,99,-311,-267,166,358,27,-343,-213,228,336,-45,-361,-150,280,301,-116,-364,-81,320,255,-182,-354,-9,349,198,-241,-329,63,363,133,-291,   // NOLINT
  258,63,-343,-182,280,280,-182,-343,63,365,63,-343,-182,280,280,-182,-343,63,365,63,-343,-182,280,280,-182,-343,63,365,63,-343,-182,280,   // NOLINT
  258,27,-361,-81,349,133,-329,-182,301,228,-267,-267,228,301,-182,-329,133,349,-81,-361,27,365,27,-361,-81,349,133,-329,-182,301,228,-267,   // NOLINT
  258,-9,-364,27,363,-45,-361,63,358,-81,-354,99,349,-116,-343,133,336,-150,-329,166,320,-182,-311,198,301,-213,-291,228,280,-241,-267,255,   // NOLINT
  258,-45,-354,133,320,-213,-267,280,198,-329,-116,358,27,-364,63,349,-150,-311,228,255,-291,-182,336,99,-361,-9,363,-81,-343,166,301,-241,   // NOLINT
  258,-81,-329,228,228,-329,-81,365,-81,-329,228,228,-329,-81,365,-81,-329,228,228,-329,-81,365,-81,-329,228,228,-329,-81,365,-81,-329,228,   // NOLINT
  258,-116,-291,301,99,-364,133,280,-311,-81,363,-150,-267,320,63,-361,166,255,-329,-45,358,-182,-241,336,27,-354,198,228,-343,-9,349,-213,   // NOLINT
  258,-150,-241,349,-45,-311,301,63,-354,228,166,-364,133,255,-343,27,320,-291,-81,358,-213,-182,363,-116,-267,336,-9,-329,280,99,-361,198,   // NOLINT
  258,-182,-182,365,-182,-182,365,-182,-182,365,-182,-182,365,-182,-182,365,-182,-182,365,-182,-182,365,-182,-182,365,-182,-182,365,-182,-182,365,-182,   // NOLINT
  258,-213,-116,349,-291,-9,301,-343,99,228,-364,198,133,-354,280,27,-311,336,-81,-241,363,-182,-150,358,-267,-45,320,-329,63,255,-361,166,   // NOLINT
  258,-241,-45,301,-354,166,133,-343,320,-81,-213,363,-267,-9,280,-361,198,99,-329,336,-116,-182,358,-291,27,255,-364,228,63,-311,349,-150,   // NOLINT
  258,-267,27,228,-361,301,-81,-182,349,-329,133,133,-329,349,-182,-81,301,-361,228,27,-267,365,-267,27,228,-361,301,-81,-182,349,-329,133,   // NOLINT
  258,-291,99,133,-311,363,-267,63,166,-329,358,-241,27,198,-343,349,-213,-9,228,-354,336,-182,-45,255,-361,320,-150,-81,280,-364,301,-116,   // NOLINT
  258,-311,166,27,-213,336,-361,280,-116,-81,255,-354,349,-241,63,133,-291,363,-329,198,-9,-182,320,-364,301,-150,-45,228,-343,358,-267,99,   // NOLINT
  258,-329,228,-81,-81,228,-329,365,-329,228,-81,-81,228,-329,365,-329,228,-81,-81,228,-329,365,-329,228,-81,-81,228,-329,365,-329,228,-81,   // NOLINT
  258,-343,280,-182,63,63,-182,280,-343,365,-343,280,-182,63,63,-182,280,-343,365,-343,280,-182,63,63,-182,280,-343,365,-343,280,-182,63,   // NOLINT
  258,-354,320,-267,198,-116,27,63,-150,228,-291,336,-361,363,-343,301,-241,166,-81,-9,99,-182,255,-311,349,-364,358,-329,280,-213,133,-45,   // NOLINT
  258,-361,349,-329,301,-267,228,-182,133,-81,27,27,-81,133,-182,228,-267,301,-329,349,-361,365,-361,349,-329,301,-267,228,-182,133,-81,27,   // NOLINT
  258,-364,363,-361,358,-354,349,-343,336,-329,320,-311,301,-291,280,-267,255,-241,228,-213,198,-182,166,-150,133,-116,99,-81,63,-45,27,-9,   // NOLINT
};

const int16_t TransformData::kDct5Transform64High[64 * 64] = {
  182,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,257,   // NOLINT
  257,363,362,359,356,352,348,342,335,328,320,311,301,291,280,268,255,242,229,214,200,184,169,152,136,119,102,85,67,49,31,13,-4,-22,-40,-58,-76,-93,-111,-128,-144,-161,-177,-192,-207,-222,-236,-249,-262,-274,-285,-296,-306,-316,-324,-332,-339,-345,-350,-354,-358,-361,-362,-363,   // NOLINT
  257,362,356,348,335,320,301,280,255,229,200,169,136,102,67,31,-4,-40,-76,-111,-144,-177,-207,-236,-262,-285,-306,-324,-339,-350,-358,-362,-363,-361,-354,-345,-332,-316,-296,-274,-249,-222,-192,-161,-128,-93,-58,-22,13,49,85,119,152,184,214,242,268,291,311,328,342,352,359,363,   // NOLINT
  257,359,348,328,301,268,229,184,136,85,31,-22,-76,-128,-177,-222,-262,-296,-324,-345,-358,-363,-361,-350,-332,-306,-274,-236,-192,-144,-93,-40,13,67,119,169,214,255,291,320,342,356,363,362,352,335,311,280,242,200,152,102,49,-4,-58,-111,-161,-207,-249,-285,-316,-339,-354,-362,   // NOLINT
  257,356,335,301,255,200,136,67,-4,-76,-144,-207,-262,-306,-339,-358,-363,-354,-332,-296,-249,-192,-128,-58,13,85,152,214,268,311,342,359,363,352,328,291,242,184,119,49,-22,-93,-161,-222,-274,-316,-345,-361,-362,-350,-324,-285,-236,-177,-111,-40,31,102,169,229,280,320,348,362,   // NOLINT
  257,352,320,268,200,119,31,-58,-144,-222,-285,-332,-358,-362,-345,-306,-249,-177,-93,-4,85,169,242,301,342,362,359,335,291,229,152,67,-22,-111,-192,-262,-316,-350,-363,-354,-324,-274,-207,-128,-40,49,136,214,280,328,356,363,348,311,255,184,102,13,-76,-161,-236,-296,-339,-361,   // NOLINT
  257,348,301,229,136,31,-76,-177,-262,-324,-358,-361,-332,-274,-192,-93,13,119,214,291,342,363,352,311,242,152,49,-58,-161,-249,-316,-354,-362,-339,-285,-207,-111,-4,102,200,280,335,362,356,320,255,169,67,-40,-144,-236,-306,-350,-363,-345,-296,-222,-128,-22,85,184,268,328,359,   // NOLINT
  257,342,280,184,67,-58,-177,-274,-339,-363,-345,-285,-192,-76,49,169,268,335,363,348,291,200,85,-40,-161,-262,-332,-362,-350,-296,-207,-93,31,152,255,328,362,352,301,214,102,-22,-144,-249,-324,-361,-354,-306,-222,-111,13,136,242,320,359,356,311,229,119,-4,-128,-236,-316,-358,   // NOLINT
  257,335,255,136,-4,-144,-262,-339,-363,-332,-249,-128,13,152,268,342,363,328,242,119,-22,-161,-274,-345,-362,-324,-236,-111,31,169,280,348,362,320,229,102,-40,-177,-285,-350,-361,-316,-222,-93,49,184,291,352,359,311,214,85,-58,-192,-296,-354,-358,-306,-207,-76,67,200,301,356,   // NOLINT
  257,328,229,85,-76,-222,-324,-363,-332,-236,-93,67,214,320,363,335,242,102,-58,-207,-316,-362,-339,-249,-111,49,200,311,362,342,255,119,-40,-192,-306,-361,-345,-262,-128,31,184,301,359,348,268,136,-22,-177,-296,-358,-350,-274,-144,13,169,291,356,352,280,152,-4,-161,-285,-354,   // NOLINT
  257,320,200,31,-144,-285,-358,-345,-249,-93,85,242,342,359,291,152,-22,-192,-316,-363,-324,-207,-40,136,280,356,348,255,102,-76,-236,-339,-361,-296,-161,13,184,311,363,328,214,49,-128,-274,-354,-350,-262,-111,67,229,335,362,301,169,-4,-177,-306,-362,-332,-222,-58,119,268,352,   // NOLINT
  257,311,169,-22,-207,-332,-361,-285,-128,67,242,348,352,255,85,-111,-274,-358,-339,-222,-40,152,301,363,320,184,-4,-192,-324,-362,-296,-144,49,229,342,356,268,102,-93,-262,-354,-345,-236,-58,136,291,362,328,200,13,-177,-316,-363,-306,-161,31,214,335,359,280,119,-76,-249,-350,   // NOLINT
  257,301,136,-76,-262,-358,-332,-192,13,214,342,352,242,49,-161,-316,-362,-285,-111,102,280,362,320,169,-40,-236,-350,-345,-222,-22,184,328,359,268,85,-128,-296,-363,-306,-144,67,255,356,335,200,-4,-207,-339,-354,-249,-58,152,311,363,291,119,-93,-274,-361,-324,-177,31,229,348,   // NOLINT
  257,291,102,-128,-306,-362,-274,-76,152,320,359,255,49,-177,-332,-354,-236,-22,200,342,348,214,-4,-222,-350,-339,-192,31,242,356,328,169,-58,-262,-361,-316,-144,85,280,363,301,119,-111,-296,-363,-285,-93,136,311,362,268,67,-161,-324,-358,-249,-40,184,335,352,229,13,-207,-345,   // NOLINT
  257,280,67,-177,-339,-345,-192,49,268,363,291,85,-161,-332,-350,-207,31,255,362,301,102,-144,-324,-354,-222,13,242,359,311,119,-128,-316,-358,-236,-4,229,356,320,136,-111,-306,-361,-249,-22,214,352,328,152,-93,-296,-362,-262,-40,200,348,335,169,-76,-285,-363,-274,-58,184,342,   // NOLINT
  257,268,31,-222,-358,-306,-93,169,342,335,152,-111,-316,-354,-207,49,280,363,255,13,-236,-361,-296,-76,184,348,328,136,-128,-324,-350,-192,67,291,362,242,-4,-249,-362,-285,-58,200,352,320,119,-144,-332,-345,-177,85,301,359,229,-22,-262,-363,-274,-40,214,356,311,102,-161,-339,   // NOLINT
  257,255,-4,-262,-363,-249,13,268,363,242,-22,-274,-362,-236,31,280,362,229,-40,-285,-361,-222,49,291,359,214,-58,-296,-358,-207,67,301,356,200,-76,-306,-354,-192,85,311,352,184,-93,-316,-350,-177,102,320,348,169,-111,-324,-345,-161,119,328,342,152,-128,-332,-339,-144,136,335,   // NOLINT
  257,242,-40,-296,-354,-177,119,335,328,102,-192,-358,-285,-22,255,363,229,-58,-306,-350,-161,136,342,320,85,-207,-361,-274,-4,268,362,214,-76,-316,-345,-144,152,348,311,67,-222,-362,-262,13,280,359,200,-93,-324,-339,-128,169,352,301,49,-236,-363,-249,31,291,356,184,-111,-332,   // NOLINT
  257,229,-76,-324,-332,-93,214,363,242,-58,-316,-339,-111,200,362,255,-40,-306,-345,-128,184,359,268,-22,-296,-350,-144,169,356,280,-4,-285,-354,-161,152,352,291,13,-274,-358,-177,136,348,301,31,-262,-361,-192,119,342,311,49,-249,-362,-207,102,335,320,67,-236,-363,-222,85,328,   // NOLINT
  257,214,-111,-345,-296,-4,291,348,119,-207,-363,-222,102,342,301,13,-285,-350,-128,200,363,229,-93,-339,-306,-22,280,352,136,-192,-362,-236,85,335,311,31,-274,-354,-144,184,362,242,-76,-332,-316,-40,268,356,152,-177,-361,-249,67,328,320,49,-262,-358,-161,169,359,255,-58,-324,   // NOLINT
  257,200,-144,-358,-249,85,342,291,-22,-316,-324,-40,280,348,102,-236,-361,-161,184,363,214,-128,-354,-262,67,335,301,-4,-306,-332,-58,268,352,119,-222,-362,-177,169,362,229,-111,-350,-274,49,328,311,13,-296,-339,-76,255,356,136,-207,-363,-192,152,359,242,-93,-345,-285,31,320,   // NOLINT
  257,184,-177,-363,-192,169,363,200,-161,-362,-207,152,362,214,-144,-361,-222,136,359,229,-128,-358,-236,119,356,242,-111,-354,-249,102,352,255,-93,-350,-262,85,348,268,-76,-345,-274,67,342,280,-58,-339,-285,49,335,291,-40,-332,-296,31,328,301,-22,-324,-306,13,320,311,-4,-316,   // NOLINT
  257,169,-207,-361,-128,242,352,85,-274,-339,-40,301,320,-4,-324,-296,49,342,268,-93,-354,-236,136,362,200,-177,-363,-161,214,359,119,-249,-350,-76,280,335,31,-306,-316,13,328,291,-58,-345,-262,102,356,229,-144,-362,-192,184,363,152,-222,-358,-111,255,348,67,-285,-332,-22,311,   // NOLINT
  257,152,-236,-350,-58,301,311,-40,-345,-249,136,363,169,-222,-354,-76,291,320,-22,-339,-262,119,362,184,-207,-358,-93,280,328,-4,-332,-274,102,359,200,-192,-361,-111,268,335,13,-324,-285,85,356,214,-177,-362,-128,255,342,31,-316,-296,67,352,229,-161,-363,-144,242,348,49,-306,   // NOLINT
  257,136,-262,-332,13,342,242,-161,-362,-111,280,320,-40,-350,-222,184,359,85,-296,-306,67,356,200,-207,-354,-58,311,291,-93,-361,-177,229,348,31,-324,-274,119,363,152,-249,-339,-4,335,255,-144,-363,-128,268,328,-22,-345,-236,169,362,102,-285,-316,49,352,214,-192,-358,-76,301,   // NOLINT
  257,119,-285,-306,85,362,152,-262,-324,49,356,184,-236,-339,13,348,214,-207,-350,-22,335,242,-177,-358,-58,320,268,-144,-362,-93,301,291,-111,-363,-128,280,311,-76,-361,-161,255,328,-40,-354,-192,229,342,-4,-345,-222,200,352,31,-332,-249,169,359,67,-316,-274,136,363,102,-296,   // NOLINT
  257,102,-306,-274,152,359,49,-332,-236,200,348,-4,-350,-192,242,328,-58,-361,-144,280,301,-111,-363,-93,311,268,-161,-358,-40,335,229,-207,-345,13,352,184,-249,-324,67,362,136,-285,-296,119,363,85,-316,-262,169,356,31,-339,-222,214,342,-22,-354,-177,255,320,-76,-362,-128,291,   // NOLINT
  257,85,-324,-236,214,335,-58,-362,-111,311,255,-192,-345,31,359,136,-296,-274,169,352,-4,-354,-161,280,291,-144,-358,-22,348,184,-262,-306,119,362,49,-339,-207,242,320,-93,-363,-76,328,229,-222,-332,67,363,102,-316,-249,200,342,-40,-361,-128,301,268,-177,-350,13,356,152,-285,   // NOLINT
  257,67,-339,-192,268,291,-161,-350,31,362,102,-324,-222,242,311,-128,-358,-4,356,136,-306,-249,214,328,-93,-362,-40,348,169,-285,-274,184,342,-58,-363,-76,335,200,-262,-296,152,352,-22,-361,-111,320,229,-236,-316,119,359,13,-354,-144,301,255,-207,-332,85,363,49,-345,-177,280,   // NOLINT
  257,49,-350,-144,311,229,-249,-296,169,342,-76,-362,-22,356,119,-324,-207,268,280,-192,-332,102,359,-4,-361,-93,335,184,-285,-262,214,320,-128,-354,31,363,67,-345,-161,301,242,-236,-306,152,348,-58,-363,-40,352,136,-316,-222,255,291,-177,-339,85,362,13,-358,-111,328,200,-274,   // NOLINT
  257,31,-358,-93,342,152,-316,-207,280,255,-236,-296,184,328,-128,-350,67,362,-4,-362,-58,352,119,-332,-177,301,229,-262,-274,214,311,-161,-339,102,356,-40,-363,-22,359,85,-345,-144,320,200,-285,-249,242,291,-192,-324,136,348,-76,-361,13,363,49,-354,-111,335,169,-306,-222,268,   // NOLINT
  257,13,-362,-40,359,67,-354,-93,348,119,-339,-144,328,169,-316,-192,301,214,-285,-236,268,255,-249,-274,229,291,-207,-306,184,320,-161,-332,136,342,-111,-350,85,356,-58,-361,31,363,-4,-363,-22,362,49,-358,-76,352,102,-345,-128,335,152,-324,-177,311,200,-296,-222,280,242,-262,   // NOLINT
  257,-4,-363,13,363,-22,-362,31,362,-40,-361,49,359,-58,-358,67,356,-76,-354,85,352,-93,-350,102,348,-111,-345,119,342,-128,-339,136,335,-144,-332,152,328,-161,-324,169,320,-177,-316,184,311,-192,-306,200,301,-207,-296,214,291,-222,-285,229,280,-236,-274,242,268,-249,-262,255,   // NOLINT
  257,-22,-361,67,352,-111,-339,152,320,-192,-296,229,268,-262,-236,291,200,-316,-161,335,119,-350,-76,359,31,-363,13,362,-58,-354,102,342,-144,-324,184,301,-222,-274,255,242,-285,-207,311,169,-332,-128,348,85,-358,-40,363,-4,-362,49,356,-93,-345,136,328,-177,-306,214,280,-249,   // NOLINT
  257,-40,-354,119,328,-192,-285,255,229,-306,-161,342,85,-361,-4,362,-76,-345,152,311,-222,-262,280,200,-324,-128,352,49,-363,31,356,-111,-332,184,291,-249,-236,301,169,-339,-93,359,13,-362,67,348,-144,-316,214,268,-274,-207,320,136,-350,-58,363,-22,-358,102,335,-177,-296,242,   // NOLINT
  257,-58,-345,169,291,-262,-207,328,102,-361,13,356,-128,-316,229,242,-306,-144,352,31,-362,85,335,-192,-274,280,184,-339,-76,363,-40,-350,152,301,-249,-222,320,119,-358,-4,359,-111,-324,214,255,-296,-161,348,49,-363,67,342,-177,-285,268,200,-332,-93,362,-22,-354,136,311,-236,   // NOLINT
  257,-76,-332,214,242,-316,-111,362,-40,-345,184,268,-296,-144,356,-4,-354,152,291,-274,-177,348,31,-361,119,311,-249,-207,335,67,-363,85,328,-222,-236,320,102,-362,49,342,-192,-262,301,136,-358,13,352,-161,-285,280,169,-350,-22,359,-128,-306,255,200,-339,-58,363,-93,-324,229,   // NOLINT
  257,-93,-316,255,184,-350,-4,352,-177,-262,311,102,-363,85,320,-249,-192,348,13,-354,169,268,-306,-111,363,-76,-324,242,200,-345,-22,356,-161,-274,301,119,-362,67,328,-236,-207,342,31,-358,152,280,-296,-128,362,-58,-332,229,214,-339,-40,359,-144,-285,291,136,-361,49,335,-222,   // NOLINT
  257,-111,-296,291,119,-363,102,301,-285,-128,363,-93,-306,280,136,-362,85,311,-274,-144,362,-76,-316,268,152,-361,67,320,-262,-161,359,-58,-324,255,169,-358,49,328,-249,-177,356,-40,-332,242,184,-354,31,335,-236,-192,352,-22,-339,229,200,-350,13,342,-222,-207,348,-4,-345,214,   // NOLINT
  257,-128,-274,320,49,-354,200,214,-350,31,328,-262,-144,363,-111,-285,311,67,-358,184,229,-345,13,335,-249,-161,362,-93,-296,301,85,-361,169,242,-339,-4,342,-236,-177,359,-76,-306,291,102,-362,152,255,-332,-22,348,-222,-192,356,-58,-316,280,119,-363,136,268,-324,-40,352,-207,   // NOLINT
  257,-144,-249,342,-22,-324,280,102,-361,184,214,-354,67,301,-306,-58,352,-222,-177,362,-111,-274,328,13,-339,255,136,-363,152,242,-345,31,320,-285,-93,359,-192,-207,356,-76,-296,311,49,-350,229,169,-362,119,268,-332,-4,335,-262,-128,363,-161,-236,348,-40,-316,291,85,-358,200,   // NOLINT
  257,-161,-222,356,-93,-274,335,-22,-316,301,49,-345,255,119,-361,200,184,-362,136,242,-350,67,291,-324,-4,328,-285,-76,352,-236,-144,363,-177,-207,359,-111,-262,342,-40,-306,311,31,-339,268,102,-358,214,169,-363,152,229,-354,85,280,-332,13,320,-296,-58,348,-249,-128,362,-192,   // NOLINT
  257,-177,-192,363,-161,-207,362,-144,-222,359,-128,-236,356,-111,-249,352,-93,-262,348,-76,-274,342,-58,-285,335,-40,-296,328,-22,-306,320,-4,-316,311,13,-324,301,31,-332,291,49,-339,280,67,-345,268,85,-350,255,102,-354,242,119,-358,229,136,-361,214,152,-362,200,169,-363,184,   // NOLINT
  257,-192,-161,362,-222,-128,356,-249,-93,348,-274,-58,335,-296,-22,320,-316,13,301,-332,49,280,-345,85,255,-354,119,229,-361,152,200,-363,184,169,-362,214,136,-358,242,102,-350,268,67,-339,291,31,-324,311,-4,-306,328,-40,-285,342,-76,-262,352,-111,-236,359,-144,-207,363,-177,   // NOLINT
  257,-207,-128,352,-274,-40,320,-324,49,268,-354,136,200,-363,214,119,-350,280,31,-316,328,-58,-262,356,-144,-192,363,-222,-111,348,-285,-22,311,-332,67,255,-358,152,184,-362,229,102,-345,291,13,-306,335,-76,-249,359,-161,-177,362,-236,-93,342,-296,-4,301,-339,85,242,-361,169,   // NOLINT
  257,-222,-93,335,-316,49,255,-361,184,136,-350,291,-4,-285,352,-144,-177,359,-262,-40,311,-339,102,214,-363,229,85,-332,320,-58,-249,362,-192,-128,348,-296,13,280,-354,152,169,-358,268,31,-306,342,-111,-207,363,-236,-76,328,-324,67,242,-362,200,119,-345,301,-22,-274,356,-161,   // NOLINT
  257,-236,-58,311,-345,136,169,-354,291,-22,-262,362,-207,-93,328,-332,102,200,-361,268,13,-285,356,-177,-128,342,-316,67,229,-363,242,49,-306,348,-144,-161,352,-296,31,255,-362,214,85,-324,335,-111,-192,359,-274,-4,280,-358,184,119,-339,320,-76,-222,363,-249,-40,301,-350,152,   // NOLINT
  257,-249,-22,280,-361,214,67,-306,352,-177,-111,328,-339,136,152,-345,320,-93,-192,356,-296,49,229,-362,268,-4,-262,363,-236,-40,291,-358,200,85,-316,348,-161,-128,335,-332,119,169,-350,311,-76,-207,359,-285,31,242,-363,255,13,-274,362,-222,-58,301,-354,184,102,-324,342,-144,   // NOLINT
  257,-262,13,242,-362,280,-40,-222,359,-296,67,200,-354,311,-93,-177,348,-324,119,152,-339,335,-144,-128,328,-345,169,102,-316,352,-192,-76,301,-358,214,49,-285,362,-236,-22,268,-363,255,-4,-249,363,-274,31,229,-361,291,-58,-207,356,-306,85,184,-350,320,-111,-161,342,-332,136,   // NOLINT
  257,-274,49,200,-350,328,-144,-111,311,-358,229,13,-249,362,-296,85,169,-339,342,-177,-76,291,-362,255,-22,-222,356,-316,119,136,-324,352,-207,-40,268,-363,280,-58,-192,348,-332,152,102,-306,359,-236,-4,242,-361,301,-93,-161,335,-345,184,67,-285,363,-262,31,214,-354,320,-128,   // NOLINT
  257,-285,85,152,-324,356,-236,13,214,-350,335,-177,-58,268,-362,301,-111,-128,311,-361,255,-40,-192,342,-345,200,31,-249,359,-316,136,102,-296,363,-274,67,169,-332,352,-222,-4,229,-354,328,-161,-76,280,-363,291,-93,-144,320,-358,242,-22,-207,348,-339,184,49,-262,362,-306,119,   // NOLINT
  257,-296,119,102,-285,363,-306,136,85,-274,362,-316,152,67,-262,359,-324,169,49,-249,356,-332,184,31,-236,352,-339,200,13,-222,348,-345,214,-4,-207,342,-350,229,-22,-192,335,-354,242,-40,-177,328,-358,255,-58,-161,320,-361,268,-76,-144,311,-362,280,-93,-128,301,-363,291,-111,   // NOLINT
  257,-306,152,49,-236,348,-350,242,-58,-144,301,-363,311,-161,-40,229,-345,352,-249,67,136,-296,363,-316,169,31,-222,342,-354,255,-76,-128,291,-362,320,-177,-22,214,-339,356,-262,85,119,-285,362,-324,184,13,-207,335,-358,268,-93,-111,280,-361,328,-192,-4,200,-332,359,-274,102,   // NOLINT
  257,-316,184,-4,-177,311,-363,320,-192,13,169,-306,363,-324,200,-22,-161,301,-362,328,-207,31,152,-296,362,-332,214,-40,-144,291,-361,335,-222,49,136,-285,359,-339,229,-58,-128,280,-358,342,-236,67,119,-274,356,-345,242,-76,-111,268,-354,348,-249,85,102,-262,352,-350,255,-93,   // NOLINT
  257,-324,214,-58,-111,255,-345,359,-296,169,-4,-161,291,-358,348,-262,119,49,-207,320,-363,328,-222,67,102,-249,342,-361,301,-177,13,152,-285,356,-350,268,-128,-40,200,-316,363,-332,229,-76,-93,242,-339,362,-306,184,-22,-144,280,-354,352,-274,136,31,-192,311,-362,335,-236,85,   // NOLINT
  257,-332,242,-111,-40,184,-296,356,-354,291,-177,31,119,-249,335,-363,328,-236,102,49,-192,301,-358,352,-285,169,-22,-128,255,-339,363,-324,229,-93,-58,200,-306,359,-350,280,-161,13,136,-262,342,-362,320,-222,85,67,-207,311,-361,348,-274,152,-4,-144,268,-345,362,-316,214,-76,   // NOLINT
  257,-339,268,-161,31,102,-222,311,-358,356,-306,214,-93,-40,169,-274,342,-363,335,-262,152,-22,-111,229,-316,359,-354,301,-207,85,49,-177,280,-345,363,-332,255,-144,13,119,-236,320,-361,352,-296,200,-76,-58,184,-285,348,-362,328,-249,136,-4,-128,242,-324,362,-350,291,-192,67,   // NOLINT
  257,-345,291,-207,102,13,-128,229,-306,352,-362,335,-274,184,-76,-40,152,-249,320,-358,359,-324,255,-161,49,67,-177,268,-332,362,-354,311,-236,136,-22,-93,200,-285,342,-363,348,-296,214,-111,-4,119,-222,301,-350,363,-339,280,-192,85,31,-144,242,-316,356,-361,328,-262,169,-58,   // NOLINT
  257,-350,311,-249,169,-76,-22,119,-207,280,-332,359,-361,335,-285,214,-128,31,67,-161,242,-306,348,-363,352,-316,255,-177,85,13,-111,200,-274,328,-358,362,-339,291,-222,136,-40,-58,152,-236,301,-345,363,-354,320,-262,184,-93,-4,102,-192,268,-324,356,-362,342,-296,229,-144,49,   // NOLINT
  257,-354,328,-285,229,-161,85,-4,-76,152,-222,280,-324,352,-363,356,-332,291,-236,169,-93,13,67,-144,214,-274,320,-350,363,-358,335,-296,242,-177,102,-22,-58,136,-207,268,-316,348,-362,359,-339,301,-249,184,-111,31,49,-128,200,-262,311,-345,362,-361,342,-306,255,-192,119,-40,   // NOLINT
  257,-358,342,-316,280,-236,184,-128,67,-4,-58,119,-177,229,-274,311,-339,356,-363,359,-345,320,-285,242,-192,136,-76,13,49,-111,169,-222,268,-306,335,-354,363,-361,348,-324,291,-249,200,-144,85,-22,-40,102,-161,214,-262,301,-332,352,-362,362,-350,328,-296,255,-207,152,-93,31,   // NOLINT
  257,-361,352,-339,320,-296,268,-236,200,-161,119,-76,31,13,-58,102,-144,184,-222,255,-285,311,-332,348,-358,363,-362,356,-345,328,-306,280,-249,214,-177,136,-93,49,-4,-40,85,-128,169,-207,242,-274,301,-324,342,-354,362,-363,359,-350,335,-316,291,-262,229,-192,152,-111,67,-22,   // NOLINT
  257,-362,359,-354,348,-339,328,-316,301,-285,268,-249,229,-207,184,-161,136,-111,85,-58,31,-4,-22,49,-76,102,-128,152,-177,200,-222,242,-262,280,-296,311,-324,335,-345,352,-358,362,-363,363,-361,356,-350,342,-332,320,-306,291,-274,255,-236,214,-192,169,-144,119,-93,67,-40,13,   // NOLINT
  257,-363,363,-362,362,-361,359,-358,356,-354,352,-350,348,-345,342,-339,335,-332,328,-324,320,-316,311,-306,301,-296,291,-285,280,-274,268,-262,255,-249,242,-236,229,-222,214,-207,200,-192,184,-177,169,-161,152,-144,136,-128,119,-111,102,-93,85,-76,67,-58,49,-40,31,-22,13,-4,   // NOLINT
};

const int16_t TransformData::kDct8Transform4High[4 * 4] = {
  336,296,219,117,   // NOLINT
  296,0,-296,-296,   // NOLINT
  219,-296,-117,336,   // NOLINT
  117,-296,336,-219,   // NOLINT
};

const int16_t TransformData::kDct8Transform8High[8 * 8] = {
  350,338,314,280,237,185,127,65,   // NOLINT
  338,237,65,-127,-280,-350,-314,-185,   // NOLINT
  314,65,-237,-350,-185,127,338,280,   // NOLINT
  280,-127,-350,-65,314,237,-185,-338,   // NOLINT
  237,-280,-185,314,127,-338,-65,350,   // NOLINT
  185,-350,127,237,-338,65,280,-314,   // NOLINT
  127,-314,338,-185,-65,280,-350,237,   // NOLINT
  65,-185,280,-338,350,-314,237,-127,   // NOLINT
};

const int16_t TransformData::kDct8Transform16High[16 * 16] = {
  356,353,346,337,324,309,290,269,246,220,193,163,133,100,67,34,  // NOLINT
  353,324,269,193,100,0,-100,-193,-269,-324,-353,-353,-324,-269,-193,-100,   // NOLINT
  346,269,133,-34,-193,-309,-356,-324,-220,-67,100,246,337,353,290,163,   // NOLINT
  337,193,-34,-246,-353,-309,-133,100,290,356,269,67,-163,-324,-346,-220,   // NOLINT
  324,100,-193,-353,-269,0,269,353,193,-100,-324,-324,-100,193,353,269,   // NOLINT
  309,0,-309,-309,0,309,309,0,-309,-309,0,309,309,0,-309,-309,   // NOLINT
  290,-100,-356,-133,269,309,-67,-353,-163,246,324,-34,-346,-193,220,337,   // NOLINT
  269,-193,-324,100,353,0,-353,-100,324,193,-269,-269,193,324,-100,-353,   // NOLINT
  246,-269,-220,290,193,-309,-163,324,133,-337,-100,346,67,-353,-34,356,   // NOLINT
  220,-324,-67,356,-100,-309,246,193,-337,-34,353,-133,-290,269,163,-346,   // NOLINT
  193,-353,100,269,-324,0,324,-269,-100,353,-193,-193,353,-100,-269,324,   // NOLINT
  163,-353,246,67,-324,309,-34,-269,346,-133,-193,356,-220,-100,337,-290,   // NOLINT
  133,-324,337,-163,-100,309,-346,193,67,-290,353,-220,-34,269,-356,246,   // NOLINT
  100,-269,353,-324,193,0,-193,324,-353,269,-100,-100,269,-353,324,-193,   // NOLINT
  67,-193,290,-346,353,-309,220,-100,-34,163,-269,337,-356,324,-246,133,   // NOLINT
  34,-100,163,-220,269,-309,337,-353,356,-346,324,-290,246,-193,133,-67,   // NOLINT
};

const int16_t TransformData::kDct8Transform32High[32 * 32] = {
  359,358,357,354,351,347,342,336,329,322,314,305,296,285,275,263,251,238,225,211,197,182,167,151,135,119,103,86,69,52,35,17,   // NOLINT
  358,351,336,314,285,251,211,167,119,69,17,-35,-86,-135,-182,-225,-263,-296,-322,-342,-354,-359,-357,-347,-329,-305,-275,-238,-197,-151,-103,-52,   // NOLINT
  357,336,296,238,167,86,0,-86,-167,-238,-296,-336,-357,-357,-336,-296,-238,-167,-86,0,86,167,238,296,336,357,357,336,296,238,167,86,   // NOLINT
  354,314,238,135,17,-103,-211,-296,-347,-358,-329,-263,-167,-52,69,182,275,336,359,342,285,197,86,-35,-151,-251,-322,-357,-351,-305,-225,-119,   // NOLINT
  351,285,167,17,-135,-263,-342,-357,-305,-197,-52,103,238,329,359,322,225,86,-69,-211,-314,-358,-336,-251,-119,35,182,296,354,347,275,151,   // NOLINT
  347,251,86,-103,-263,-351,-342,-238,-69,119,275,354,336,225,52,-135,-285,-357,-329,-211,-35,151,296,358,322,197,17,-167,-305,-359,-314,-182,   // NOLINT
  342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,   // NOLINT
  336,167,-86,-296,-357,-238,0,238,357,296,86,-167,-336,-336,-167,86,296,357,238,0,-238,-357,-296,-86,167,336,336,167,-86,-296,-357,-238,   // NOLINT
  329,119,-167,-347,-305,-69,211,357,275,17,-251,-359,-238,35,285,354,197,-86,-314,-342,-151,135,336,322,103,-182,-351,-296,-52,225,358,263,   // NOLINT
  322,69,-238,-358,-197,119,342,296,17,-275,-351,-151,167,354,263,-35,-305,-336,-103,211,359,225,-86,-329,-314,-52,251,357,182,-135,-347,-285,   // NOLINT
  314,17,-296,-329,-52,275,342,86,-251,-351,-119,225,357,151,-197,-359,-182,167,358,211,-135,-354,-238,103,347,263,-69,-336,-285,35,322,305,   // NOLINT
  305,-35,-336,-263,103,354,211,-167,-359,-151,225,351,86,-275,-329,-17,314,296,-52,-342,-251,119,357,197,-182,-358,-135,238,347,69,-285,-322,   // NOLINT
  296,-86,-357,-167,238,336,0,-336,-238,167,357,86,-296,-296,86,357,167,-238,-336,0,336,238,-167,-357,-86,296,296,-86,-357,-167,238,336,   // NOLINT
  285,-135,-357,-52,329,225,-211,-336,35,354,151,-275,-296,119,358,69,-322,-238,197,342,-17,-351,-167,263,305,-103,-359,-86,314,251,-182,-347,   // NOLINT
  275,-182,-336,69,359,52,-342,-167,285,263,-197,-329,86,358,35,-347,-151,296,251,-211,-322,103,357,17,-351,-135,305,238,-225,-314,119,354,   // NOLINT
  263,-225,-296,182,322,-135,-342,86,354,-35,-359,-17,357,69,-347,-119,329,167,-305,-211,275,251,-238,-285,197,314,-151,-336,103,351,-52,-358,   // NOLINT
  251,-263,-238,275,225,-285,-211,296,197,-305,-182,314,167,-322,-151,329,135,-336,-119,342,103,-347,-86,351,69,-354,-52,357,35,-358,-17,359,   // NOLINT
  238,-296,-167,336,86,-357,0,357,-86,-336,167,296,-238,-238,296,167,-336,-86,357,0,-357,86,336,-167,-296,238,238,-296,-167,336,86,-357,   // NOLINT
  225,-322,-86,359,-69,-329,211,238,-314,-103,358,-52,-336,197,251,-305,-119,357,-35,-342,182,263,-296,-135,354,-17,-347,167,275,-285,-151,351,   // NOLINT
  211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,   // NOLINT
  197,-354,86,285,-314,-35,342,-238,-151,359,-135,-251,336,-17,-322,275,103,-357,182,211,-351,69,296,-305,-52,347,-225,-167,358,-119,-263,329,   // NOLINT
  182,-359,167,197,-358,151,211,-357,135,225,-354,119,238,-351,103,251,-347,86,263,-342,69,275,-336,52,285,-329,35,296,-322,17,305,-314,   // NOLINT
  167,-357,238,86,-336,296,0,-296,336,-86,-238,357,-167,-167,357,-238,-86,336,-296,0,296,-336,86,238,-357,167,167,-357,238,86,-336,296,   // NOLINT
  151,-347,296,-35,-251,358,-211,-86,322,-329,103,197,-357,263,17,-285,351,-167,-135,342,-305,52,238,-359,225,69,-314,336,-119,-182,354,-275,   // NOLINT
  135,-329,336,-151,-119,322,-342,167,103,-314,347,-182,-86,305,-351,197,69,-296,354,-211,-52,285,-357,225,35,-275,358,-238,-17,263,-359,251,   // NOLINT
  119,-305,357,-251,35,197,-342,336,-182,-52,263,-358,296,-103,-135,314,-354,238,-17,-211,347,-329,167,69,-275,359,-285,86,151,-322,351,-225,   // NOLINT
  103,-275,357,-322,182,17,-211,336,-351,251,-69,-135,296,-359,305,-151,-52,238,-347,342,-225,35,167,-314,358,-285,119,86,-263,354,-329,197,   // NOLINT
  86,-238,336,-357,296,-167,0,167,-296,357,-336,238,-86,-86,238,-336,357,-296,167,0,-167,296,-357,336,-238,86,86,-238,336,-357,296,-167,   // NOLINT
  69,-197,296,-351,354,-305,211,-86,-52,182,-285,347,-357,314,-225,103,35,-167,275,-342,358,-322,238,-119,-17,151,-263,336,-359,329,-251,135,   // NOLINT
  52,-151,238,-305,347,-359,342,-296,225,-135,35,69,-167,251,-314,351,-358,336,-285,211,-119,17,86,-182,263,-322,354,-357,329,-275,197,-103,   // NOLINT
  35,-103,167,-225,275,-314,342,-357,358,-347,322,-285,238,-182,119,-52,-17,86,-151,211,-263,305,-336,354,-359,351,-329,296,-251,197,-135,69,   // NOLINT
  17,-52,86,-119,151,-182,211,-238,263,-285,305,-322,336,-347,354,-358,359,-357,351,-342,329,-314,296,-275,251,-225,197,-167,135,-103,69,-35,   // NOLINT
};

const int16_t TransformData::kDct8Transform64High[64 * 64] = {
  361,360,360,359,358,357,356,355,353,351,349,347,344,341,338,335,332,328,325,321,317,312,308,303,298,293,288,283,277,271,266,260,253,247,241,234,227,220,213,206,199,192,184,177,169,161,153,145,137,129,121,112,104,95,87,78,70,61,53,44,35,26,18,9,   // NOLINT
  360,358,355,349,341,332,321,308,293,277,260,241,220,199,177,153,129,104,78,53,26,0,-26,-53,-78,-104,-129,-153,-177,-199,-220,-241,-260,-277,-293,-308,-321,-332,-341,-349,-355,-358,-360,-360,-358,-355,-349,-341,-332,-321,-308,-293,-277,-260,-241,-220,-199,-177,-153,-129,-104,-78,-53,-26,   // NOLINT
  360,355,344,328,308,283,253,220,184,145,104,61,18,-26,-70,-112,-153,-192,-227,-260,-288,-312,-332,-347,-356,-360,-359,-353,-341,-325,-303,-277,-247,-213,-177,-137,-95,-53,-9,35,78,121,161,199,234,266,293,317,335,349,357,361,358,351,338,321,298,271,241,206,169,129,87,44,   // NOLINT
  359,349,328,298,260,213,161,104,44,-18,-78,-137,-192,-241,-283,-317,-341,-356,-361,-355,-338,-312,-277,-234,-184,-129,-70,-9,53,112,169,220,266,303,332,351,360,358,347,325,293,253,206,153,95,35,-26,-87,-145,-199,-247,-288,-321,-344,-357,-360,-353,-335,-308,-271,-227,-177,-121,-61,   // NOLINT
  358,341,308,260,199,129,53,-26,-104,-177,-241,-293,-332,-355,-360,-349,-321,-277,-220,-153,-78,0,78,153,220,277,321,349,360,355,332,293,241,177,104,26,-53,-129,-199,-260,-308,-341,-358,-358,-341,-308,-260,-199,-129,-53,26,104,177,241,293,332,355,360,349,321,277,220,153,78,   // NOLINT
  357,332,283,213,129,35,-61,-153,-234,-298,-341,-360,-353,-321,-266,-192,-104,-9,87,177,253,312,349,361,347,308,247,169,78,-18,-112,-199,-271,-325,-355,-359,-338,-293,-227,-145,-53,44,137,220,288,335,358,356,328,277,206,121,26,-70,-161,-241,-303,-344,-360,-351,-317,-260,-184,-95,   // NOLINT
  356,321,253,161,53,-61,-169,-260,-325,-357,-355,-317,-247,-153,-44,70,177,266,328,358,353,312,241,145,35,-78,-184,-271,-332,-359,-351,-308,-234,-137,-26,87,192,277,335,360,349,303,227,129,18,-95,-199,-283,-338,-360,-347,-298,-220,-121,-9,104,206,288,341,361,344,293,213,112,   // NOLINT
  355,308,220,104,-26,-153,-260,-332,-360,-341,-277,-177,-53,78,199,293,349,358,321,241,129,0,-129,-241,-321,-358,-349,-293,-199,-78,53,177,277,341,360,332,260,153,26,-104,-220,-308,-355,-355,-308,-220,-104,26,153,260,332,360,341,277,177,53,-78,-199,-293,-349,-358,-321,-241,-129,   // NOLINT
  353,293,184,44,-104,-234,-325,-360,-335,-253,-129,18,161,277,347,357,308,206,70,-78,-213,-312,-358,-344,-271,-153,-9,137,260,338,360,321,227,95,-53,-192,-298,-355,-351,-288,-177,-35,112,241,328,361,332,247,121,-26,-169,-283,-349,-356,-303,-199,-61,87,220,317,359,341,266,145,   // NOLINT
  351,277,145,-18,-177,-298,-357,-341,-253,-112,53,206,317,360,328,227,78,-87,-234,-332,-360,-312,-199,-44,121,260,344,356,293,169,9,-153,-283,-353,-349,-271,-137,26,184,303,358,338,247,104,-61,-213,-321,-361,-325,-220,-70,95,241,335,359,308,192,35,-129,-266,-347,-355,-288,-161,   // NOLINT
  349,260,104,-78,-241,-341,-355,-277,-129,53,220,332,358,293,153,-26,-199,-321,-360,-308,-177,0,177,308,360,321,199,26,-153,-293,-358,-332,-220,-53,129,277,355,341,241,78,-104,-260,-349,-349,-260,-104,78,241,341,355,277,129,-53,-220,-332,-358,-293,-153,26,199,321,360,308,177,   // NOLINT
  347,241,61,-137,-293,-360,-317,-177,18,206,332,356,271,104,-95,-266,-355,-335,-213,-26,169,312,360,298,145,-53,-234,-344,-349,-247,-70,129,288,359,321,184,-9,-199,-328,-357,-277,-112,87,260,353,338,220,35,-161,-308,-361,-303,-153,44,227,341,351,253,78,-121,-283,-358,-325,-192,   // NOLINT
  344,220,18,-192,-332,-353,-247,-53,161,317,358,271,87,-129,-298,-361,-293,-121,95,277,359,312,153,-61,-253,-355,-328,-184,26,227,347,341,213,9,-199,-335,-351,-241,-44,169,321,357,266,78,-137,-303,-360,-288,-112,104,283,360,308,145,-70,-260,-356,-325,-177,35,234,349,338,206,   // NOLINT
  341,199,-26,-241,-355,-321,-153,78,277,360,293,104,-129,-308,-358,-260,-53,177,332,349,220,0,-220,-349,-332,-177,53,260,358,308,129,-104,-293,-360,-277,-78,153,321,355,241,26,-199,-341,-341,-199,26,241,355,321,153,-78,-277,-360,-293,-104,129,308,358,260,53,-177,-332,-349,-220,   // NOLINT
  338,177,-70,-283,-360,-266,-44,199,347,328,153,-95,-298,-358,-247,-18,220,353,317,129,-121,-312,-355,-227,9,241,357,303,104,-145,-325,-349,-206,35,260,360,288,78,-169,-335,-341,-184,61,277,361,271,53,-192,-344,-332,-161,87,293,359,253,26,-213,-351,-321,-137,112,308,356,234,   // NOLINT
  335,153,-112,-317,-349,-192,70,293,357,227,-26,-266,-361,-260,-18,234,358,288,61,-199,-351,-312,-104,161,338,332,145,-121,-321,-347,-184,78,298,356,220,-35,-271,-360,-253,-9,241,359,283,53,-206,-353,-308,-95,169,341,328,137,-129,-325,-344,-177,87,303,355,213,-44,-277,-360,-247,   // NOLINT
  332,129,-153,-341,-321,-104,177,349,308,78,-199,-355,-293,-53,220,358,277,26,-241,-360,-260,0,260,360,241,-26,-277,-358,-220,53,293,355,199,-78,-308,-349,-177,104,321,341,153,-129,-332,-332,-129,153,341,321,104,-177,-349,-308,-78,199,355,293,53,-220,-358,-277,-26,241,360,260,   // NOLINT
  328,104,-192,-356,-277,-9,266,358,206,-87,-321,-335,-121,177,353,288,26,-253,-360,-220,70,312,341,137,-161,-349,-298,-44,241,361,234,-53,-303,-347,-153,145,344,308,61,-227,-360,-247,35,293,351,169,-129,-338,-317,-78,213,359,260,-18,-283,-355,-184,112,332,325,95,-199,-357,-271,   // NOLINT
  325,78,-227,-361,-220,87,328,321,70,-234,-360,-213,95,332,317,61,-241,-360,-206,104,335,312,53,-247,-359,-199,112,338,308,44,-253,-358,-192,121,341,303,35,-260,-357,-184,129,344,298,26,-266,-356,-177,137,347,293,18,-271,-355,-169,145,349,288,9,-277,-353,-161,153,351,283,   // NOLINT
  321,53,-260,-355,-153,177,358,241,-78,-332,-308,-26,277,349,129,-199,-360,-220,104,341,293,0,-293,-341,-104,220,360,199,-129,-349,-277,26,308,332,78,-241,-358,-177,153,355,260,-53,-321,-321,-53,260,355,153,-177,-358,-241,78,332,308,26,-277,-349,-129,199,360,220,-104,-341,-293,   // NOLINT
  317,26,-288,-338,-78,253,353,129,-213,-360,-177,169,359,220,-121,-351,-260,70,335,293,-18,-312,-321,-35,283,341,87,-247,-355,-137,206,360,184,-161,-358,-227,112,349,266,-61,-332,-298,9,308,325,44,-277,-344,-95,241,356,145,-199,-361,-192,153,357,234,-104,-347,-271,53,328,303,   // NOLINT
  312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,   // NOLINT
  308,-26,-332,-277,78,349,241,-129,-358,-199,177,360,153,-220,-355,-104,260,341,53,-293,-321,0,321,293,-53,-341,-260,104,355,220,-153,-360,-177,199,358,129,-241,-349,-78,277,332,26,-308,-308,26,332,277,-78,-349,-241,129,358,199,-177,-360,-153,220,355,104,-260,-341,-53,293,321,   // NOLINT
  303,-53,-347,-234,153,361,145,-241,-344,-44,308,298,-61,-349,-227,161,360,137,-247,-341,-35,312,293,-70,-351,-220,169,360,129,-253,-338,-26,317,288,-78,-353,-213,177,359,121,-260,-335,-18,321,283,-87,-355,-206,184,358,112,-266,-332,-9,325,277,-95,-356,-199,192,357,104,-271,-328,   // NOLINT
  298,-78,-356,-184,220,347,35,-321,-271,121,360,145,-253,-332,9,338,241,-161,-359,-104,283,312,-53,-351,-206,199,353,61,-308,-288,95,358,169,-234,-341,-18,328,260,-137,-361,-129,266,325,-26,-344,-227,177,357,87,-293,-303,70,355,192,-213,-349,-44,317,277,-112,-360,-153,247,335,   // NOLINT
  293,-104,-360,-129,277,308,-78,-358,-153,260,321,-53,-355,-177,241,332,-26,-349,-199,220,341,0,-341,-220,199,349,26,-332,-241,177,355,53,-321,-260,153,358,78,-308,-277,129,360,104,-293,-293,104,360,129,-277,-308,78,358,153,-260,-321,53,355,177,-241,-332,26,349,199,-220,-341,   // NOLINT
  288,-129,-359,-70,321,247,-184,-349,-9,344,199,-234,-328,53,357,145,-277,-298,112,360,87,-312,-260,169,353,26,-338,-213,220,335,-35,-355,-161,266,308,-95,-361,-104,303,271,-153,-356,-44,332,227,-206,-341,18,351,177,-253,-317,78,360,121,-293,-283,137,358,61,-325,-241,192,347,   // NOLINT
  283,-153,-353,-9,349,169,-271,-293,137,356,26,-344,-184,260,303,-121,-358,-44,338,199,-247,-312,104,360,61,-332,-213,234,321,-87,-361,-78,325,227,-220,-328,70,360,95,-317,-241,206,335,-53,-359,-112,308,253,-192,-341,35,357,129,-298,-266,177,347,-18,-355,-145,288,277,-161,-351,   // NOLINT
  277,-177,-341,53,360,78,-332,-199,260,293,-153,-349,26,358,104,-321,-220,241,308,-129,-355,0,355,129,-308,-241,220,321,-104,-358,-26,349,153,-293,-260,199,332,-78,-360,-53,341,177,-277,-277,177,341,-53,-360,-78,332,199,-260,-293,153,349,-26,-358,-104,321,220,-241,-308,129,355,   // NOLINT
  271,-199,-325,112,355,-18,-359,-78,338,169,-293,-247,227,308,-145,-347,53,361,44,-349,-137,312,220,-253,-288,177,335,-87,-358,-9,356,104,-328,-192,277,266,-206,-321,121,353,-26,-360,-70,341,161,-298,-241,234,303,-153,-344,61,360,35,-351,-129,317,213,-260,-283,184,332,-95,-357,   // NOLINT
  266,-220,-303,169,332,-112,-351,53,360,9,-358,-70,347,129,-325,-184,293,234,-253,-277,206,312,-153,-338,95,355,-35,-361,-26,356,87,-341,-145,317,199,-283,-247,241,288,-192,-321,137,344,-78,-357,18,360,44,-353,-104,335,161,-308,-213,271,260,-227,-298,177,328,-121,-349,61,359,   // NOLINT
  260,-241,-277,220,293,-199,-308,177,321,-153,-332,129,341,-104,-349,78,355,-53,-358,26,360,0,-360,-26,358,53,-355,-78,349,104,-341,-129,332,153,-321,-177,308,199,-293,-220,277,241,-260,-260,241,277,-220,-293,199,308,-177,-321,153,332,-129,-341,104,349,-78,-355,53,358,-26,-360,   // NOLINT
  253,-260,-247,266,241,-271,-234,277,227,-283,-220,288,213,-293,-206,298,199,-303,-192,308,184,-312,-177,317,169,-321,-161,325,153,-328,-145,332,137,-335,-129,338,121,-341,-112,344,104,-347,-95,349,87,-351,-78,353,70,-355,-61,356,53,-357,-44,358,35,-359,-26,360,18,-360,-9,361,   // NOLINT
  247,-277,-213,303,177,-325,-137,341,95,-353,-53,359,9,-360,35,356,-78,-347,121,332,-161,-312,199,288,-234,-260,266,227,-293,-192,317,153,-335,-112,349,70,-357,-26,361,-18,-358,61,351,-104,-338,145,321,-184,-298,220,271,-253,-241,283,206,-308,-169,328,129,-344,-87,355,44,-360,   // NOLINT
  241,-293,-177,332,104,-355,-26,360,-53,-349,129,321,-199,-277,260,220,-308,-153,341,78,-358,0,358,-78,-341,153,308,-220,-260,277,199,-321,-129,349,53,-360,26,355,-104,-332,177,293,-241,-241,293,177,-332,-104,355,26,-360,53,349,-129,-321,199,277,-260,-220,308,153,-341,-78,358,   // NOLINT
  234,-308,-137,351,26,-359,87,332,-192,-271,277,184,-335,-78,360,-35,-349,145,303,-241,-227,312,129,-353,-18,358,-95,-328,199,266,-283,-177,338,70,-360,44,347,-153,-298,247,220,-317,-121,355,9,-357,104,325,-206,-260,288,169,-341,-61,361,-53,-344,161,293,-253,-213,321,112,-356,   // NOLINT
  227,-321,-95,360,-53,-338,192,260,-298,-137,355,-9,-351,153,288,-271,-177,344,35,-358,112,312,-241,-213,328,78,-361,70,332,-206,-247,308,121,-357,26,347,-169,-277,283,161,-349,-18,356,-129,-303,253,199,-335,-61,360,-87,-325,220,234,-317,-104,359,-44,-341,184,266,-293,-145,353,   // NOLINT
  220,-332,-53,358,-129,-293,277,153,-355,26,341,-199,-241,321,78,-360,104,308,-260,-177,349,0,-349,177,260,-308,-104,360,-78,-321,241,199,-341,-26,355,-153,-277,293,129,-358,53,332,-220,-220,332,53,-358,129,293,-277,-153,355,-26,-341,199,241,-321,-78,360,-104,-308,260,177,-349,   // NOLINT
  213,-341,-9,347,-199,-227,335,26,-351,184,241,-328,-44,355,-169,-253,321,61,-357,153,266,-312,-78,359,-137,-277,303,95,-360,121,288,-293,-112,361,-104,-298,283,129,-360,87,308,-271,-145,358,-70,-317,260,161,-356,53,325,-247,-177,353,-35,-332,234,192,-349,18,338,-220,-206,344,   // NOLINT
  206,-349,35,325,-260,-145,360,-104,-288,303,78,-357,169,241,-335,-9,341,-227,-184,355,-61,-312,277,121,-361,129,271,-317,-53,353,-192,-220,344,-18,-332,247,161,-358,87,298,-293,-95,359,-153,-253,328,26,-347,213,199,-351,44,321,-266,-137,360,-112,-283,308,70,-356,177,234,-338,   // NOLINT
  199,-355,78,293,-308,-53,349,-220,-177,358,-104,-277,321,26,-341,241,153,-360,129,260,-332,0,332,-260,-129,360,-153,-241,341,-26,-321,277,104,-358,177,220,-349,53,308,-293,-78,355,-199,-199,355,-78,-293,308,53,-349,220,177,-358,104,277,-321,-26,341,-241,-153,360,-129,-260,332,   // NOLINT
  192,-358,121,253,-341,44,303,-308,-35,338,-260,-112,357,-199,-184,359,-129,-247,344,-53,-298,312,26,-335,266,104,-356,206,177,-360,137,241,-347,61,293,-317,-18,332,-271,-95,355,-213,-169,360,-145,-234,349,-70,-288,321,9,-328,277,87,-353,220,161,-361,153,227,-351,78,283,-325,   // NOLINT
  184,-360,161,206,-358,137,227,-355,112,247,-349,87,266,-341,61,283,-332,35,298,-321,9,312,-308,-18,325,-293,-44,335,-277,-70,344,-260,-95,351,-241,-121,356,-220,-145,359,-199,-169,361,-177,-192,360,-153,-213,357,-129,-234,353,-104,-253,347,-78,-271,338,-53,-288,328,-26,-303,317,   // NOLINT
  177,-360,199,153,-358,220,129,-355,241,104,-349,260,78,-341,277,53,-332,293,26,-321,308,0,-308,321,-26,-293,332,-53,-277,341,-78,-260,349,-104,-241,355,-129,-220,358,-153,-199,360,-177,-177,360,-199,-153,358,-220,-129,355,-241,-104,349,-260,-78,341,-277,-53,332,-293,-26,321,-308,   // NOLINT
  169,-358,234,95,-341,288,18,-308,328,-61,-260,353,-137,-199,361,-206,-129,351,-266,-53,325,-312,26,283,-344,104,227,-359,177,161,-357,241,87,-338,293,9,-303,332,-70,-253,355,-145,-192,360,-213,-121,349,-271,-44,321,-317,35,277,-347,112,220,-360,184,153,-356,247,78,-335,298,   // NOLINT
  161,-355,266,35,-308,335,-95,-220,361,-213,-104,338,-303,26,271,-353,153,169,-356,260,44,-312,332,-87,-227,360,-206,-112,341,-298,18,277,-351,145,177,-357,253,53,-317,328,-78,-234,360,-199,-121,344,-293,9,283,-349,137,184,-358,247,61,-321,325,-70,-241,359,-192,-129,347,-288,   // NOLINT
  153,-349,293,-26,-260,358,-199,-104,332,-321,78,220,-360,241,53,-308,341,-129,-177,355,-277,0,277,-355,177,129,-341,308,-53,-241,360,-220,-78,321,-332,104,199,-358,260,26,-293,349,-153,-153,349,-293,26,260,-358,199,104,-332,321,-78,-220,360,-241,-53,308,-341,129,177,-355,277,   // NOLINT
  145,-341,317,-87,-199,356,-283,26,247,-361,241,35,-288,355,-192,-95,321,-338,137,153,-344,312,-78,-206,357,-277,18,253,-360,234,44,-293,353,-184,-104,325,-335,129,161,-347,308,-70,-213,358,-271,9,260,-360,227,53,-298,351,-177,-112,328,-332,121,169,-349,303,-61,-220,359,-266,   // NOLINT
  137,-332,335,-145,-129,328,-338,153,121,-325,341,-161,-112,321,-344,169,104,-317,347,-177,-95,312,-349,184,87,-308,351,-192,-78,303,-353,199,70,-298,355,-206,-61,293,-356,213,53,-288,357,-220,-44,283,-358,227,35,-277,359,-234,-26,271,-360,241,18,-266,360,-247,-9,260,-361,253,   // NOLINT
  129,-321,349,-199,-53,277,-360,260,-26,-220,355,-308,104,153,-332,341,-177,-78,293,-358,241,0,-241,358,-293,78,177,-341,332,-153,-104,308,-355,220,26,-260,360,-277,53,199,-349,321,-129,-129,321,-349,199,53,-277,360,-260,26,220,-355,308,-104,-153,332,-341,177,78,-293,358,-241,   // NOLINT
  121,-308,357,-247,26,206,-347,332,-169,-70,277,-361,283,-78,-161,328,-349,213,18,-241,356,-312,129,112,-303,358,-253,35,199,-344,335,-177,-61,271,-360,288,-87,-153,325,-351,220,9,-234,355,-317,137,104,-298,359,-260,44,192,-341,338,-184,-53,266,-360,293,-95,-145,321,-353,227,   // NOLINT
  112,-293,361,-288,104,121,-298,360,-283,95,129,-303,360,-277,87,137,-308,359,-271,78,145,-312,358,-266,70,153,-317,357,-260,61,161,-321,356,-253,53,169,-325,355,-247,44,177,-328,353,-241,35,184,-332,351,-234,26,192,-335,349,-227,18,199,-338,347,-220,9,206,-341,344,-213,   // NOLINT
  104,-277,358,-321,177,26,-220,341,-349,241,-53,-153,308,-360,293,-129,-78,260,-355,332,-199,0,199,-332,355,-260,78,129,-293,360,-308,153,53,-241,349,-341,220,-26,-177,321,-358,277,-104,-104,277,-358,321,-177,-26,220,-341,349,-241,53,153,-308,360,-293,129,78,-260,355,-332,199,   // NOLINT
  95,-260,351,-344,241,-70,-121,277,-356,335,-220,44,145,-293,359,-325,199,-18,-169,308,-361,312,-177,-9,192,-321,360,-298,153,35,-213,332,-357,283,-129,-61,234,-341,353,-266,104,87,-253,349,-347,247,-78,-112,271,-355,338,-227,53,137,-288,358,-328,206,-26,-161,303,-360,317,-184,   // NOLINT
  87,-241,338,-357,293,-161,-9,177,-303,359,-332,227,-70,-104,253,-344,355,-283,145,26,-192,312,-360,325,-213,53,121,-266,349,-351,271,-129,-44,206,-321,361,-317,199,-35,-137,277,-353,347,-260,112,61,-220,328,-360,308,-184,18,153,-288,356,-341,247,-95,-78,234,-335,358,-298,169,   // NOLINT
  78,-220,321,-360,332,-241,104,53,-199,308,-358,341,-260,129,26,-177,293,-355,349,-277,153,0,-153,277,-349,355,-293,177,-26,-129,260,-341,358,-308,199,-53,-104,241,-332,360,-321,220,-78,-78,220,-321,360,-332,241,-104,-53,199,-308,358,-341,260,-129,-26,177,-293,355,-349,277,-153,   // NOLINT
  70,-199,298,-353,355,-303,206,-78,-61,192,-293,351,-356,308,-213,87,53,-184,288,-349,357,-312,220,-95,-44,177,-283,347,-358,317,-227,104,35,-169,277,-344,359,-321,234,-112,-26,161,-271,341,-360,325,-241,121,18,-153,266,-338,360,-328,247,-129,-9,145,-260,335,-361,332,-253,137,   // NOLINT
  61,-177,271,-335,360,-344,288,-199,87,35,-153,253,-325,358,-351,303,-220,112,9,-129,234,-312,355,-356,317,-241,137,-18,-104,213,-298,349,-359,328,-260,161,-44,-78,192,-283,341,-361,338,-277,184,-70,-53,169,-266,332,-360,347,-293,206,-95,-26,145,-247,321,-357,353,-308,227,-121,   // NOLINT
  53,-153,241,-308,349,-360,341,-293,220,-129,26,78,-177,260,-321,355,-358,332,-277,199,-104,0,104,-199,277,-332,358,-355,321,-260,177,-78,-26,129,-220,293,-341,360,-349,308,-241,153,-53,-53,153,-241,308,-349,360,-341,293,-220,129,-26,-78,177,-260,321,-355,358,-332,277,-199,104,   // NOLINT
  44,-129,206,-271,321,-351,361,-349,317,-266,199,-121,35,53,-137,213,-277,325,-353,360,-347,312,-260,192,-112,26,61,-145,220,-283,328,-355,360,-344,308,-253,184,-104,18,70,-153,227,-288,332,-356,359,-341,303,-247,177,-95,9,78,-161,234,-293,335,-357,358,-338,298,-241,169,-87,   // NOLINT
  35,-104,169,-227,277,-317,344,-358,359,-347,321,-283,234,-177,112,-44,-26,95,-161,220,-271,312,-341,357,-360,349,-325,288,-241,184,-121,53,18,-87,153,-213,266,-308,338,-356,360,-351,328,-293,247,-192,129,-61,-9,78,-145,206,-260,303,-335,355,-361,353,-332,298,-253,199,-137,70,   // NOLINT
  26,-78,129,-177,220,-260,293,-321,341,-355,360,-358,349,-332,308,-277,241,-199,153,-104,53,0,-53,104,-153,199,-241,277,-308,332,-349,358,-360,355,-341,321,-293,260,-220,177,-129,78,-26,-26,78,-129,177,-220,260,-293,321,-341,355,-360,358,-349,332,-308,277,-241,199,-153,104,-53,   // NOLINT
  18,-53,87,-121,153,-184,213,-241,266,-288,308,-325,338,-349,356,-360,360,-357,351,-341,328,-312,293,-271,247,-220,192,-161,129,-95,61,-26,-9,44,-78,112,-145,177,-206,234,-260,283,-303,321,-335,347,-355,359,-361,358,-353,344,-332,317,-298,277,-253,227,-199,169,-137,104,-70,35,   // NOLINT
  9,-26,44,-61,78,-95,112,-129,145,-161,177,-192,206,-220,234,-247,260,-271,283,-293,303,-312,321,-328,335,-341,347,-351,355,-357,359,-360,361,-360,358,-356,353,-349,344,-338,332,-325,317,-308,298,-288,277,-266,253,-241,227,-213,199,-184,169,-153,137,-121,104,-87,70,-53,35,-18,   // NOLINT
};

const int16_t TransformData::kDst1Transform4High[4 * 4] = {
  190,308,308,190,   // NOLINT
  308,190,-190,-308,   // NOLINT
  308,-190,-190,308,   // NOLINT
  190,-308,308,-190,   // NOLINT
};

const int16_t TransformData::kDst1Transform8High[8 * 8] = {
  117,219,296,336,336,296,219,117,   // NOLINT
  219,336,296,117,-117,-296,-336,-219,   // NOLINT
  296,296,0,-296,-296,0,296,296,   // NOLINT
  336,117,-296,-219,219,296,-117,-336,   // NOLINT
  336,-117,-296,219,219,-296,-117,336,   // NOLINT
  296,-296,0,296,-296,0,296,-296,   // NOLINT
  219,-336,296,-117,-117,296,-336,219,   // NOLINT
  117,-219,296,-336,336,-296,219,-117,   // NOLINT
};

const int16_t TransformData::kDst1Transform16High[16 * 16] = {
  65,127,185,237,280,314,338,350,350,338,314,280,237,185,127,65,   // NOLINT
  127,237,314,350,338,280,185,65,-65,-185,-280,-338,-350,-314,-237,-127,   // NOLINT
  185,314,350,280,127,-65,-237,-338,-338,-237,-65,127,280,350,314,185,   // NOLINT
  237,350,280,65,-185,-338,-314,-127,127,314,338,185,-65,-280,-350,-237,   // NOLINT
  280,338,127,-185,-350,-237,65,314,314,65,-237,-350,-185,127,338,280,   // NOLINT
  314,280,-65,-338,-237,127,350,185,-185,-350,-127,237,338,65,-280,-314,   // NOLINT
  338,185,-237,-314,65,350,127,-280,-280,127,350,65,-314,-237,185,338,   // NOLINT
  350,65,-338,-127,314,185,-280,-237,237,280,-185,-314,127,338,-65,-350,   // NOLINT
  350,-65,-338,127,314,-185,-280,237,237,-280,-185,314,127,-338,-65,350,   // NOLINT
  338,-185,-237,314,65,-350,127,280,-280,-127,350,-65,-314,237,185,-338,   // NOLINT
  314,-280,-65,338,-237,-127,350,-185,-185,350,-127,-237,338,-65,-280,314,   // NOLINT
  280,-338,127,185,-350,237,65,-314,314,-65,-237,350,-185,-127,338,-280,   // NOLINT
  237,-350,280,-65,-185,338,-314,127,127,-314,338,-185,-65,280,-350,237,   // NOLINT
  185,-314,350,-280,127,65,-237,338,-338,237,-65,-127,280,-350,314,-185,   // NOLINT
  127,-237,314,-350,338,-280,185,-65,-65,185,-280,338,-350,314,-237,127,   // NOLINT
  65,-127,185,-237,280,-314,338,-350,350,-338,314,-280,237,-185,127,-65,   // NOLINT
};

const int16_t TransformData::kDst1Transform32High[32 * 32] = {
  34,67,100,133,163,193,220,246,269,290,309,324,337,346,353,356,356,353,346,337,324,309,290,269,246,220,193,163,133,100,67,34,   // NOLINT
  67,133,193,246,290,324,346,356,353,337,309,269,220,163,100,34,-34,-100,-163,-220,-269,-309,-337,-353,-356,-346,-324,-290,-246,-193,-133,-67,   // NOLINT
  100,193,269,324,353,353,324,269,193,100,0,-100,-193,-269,-324,-353,-353,-324,-269,-193,-100,0,100,193,269,324,353,353,324,269,193,100,   // NOLINT
  133,246,324,356,337,269,163,34,-100,-220,-309,-353,-346,-290,-193,-67,67,193,290,346,353,309,220,100,-34,-163,-269,-337,-356,-324,-246,-133,   // NOLINT
  163,290,353,337,246,100,-67,-220,-324,-356,-309,-193,-34,133,269,346,346,269,133,-34,-193,-309,-356,-324,-220,-67,100,246,337,353,290,163,   // NOLINT
  193,324,353,269,100,-100,-269,-353,-324,-193,0,193,324,353,269,100,-100,-269,-353,-324,-193,0,193,324,353,269,100,-100,-269,-353,-324,-193,   // NOLINT
  220,346,324,163,-67,-269,-356,-290,-100,133,309,353,246,34,-193,-337,-337,-193,34,246,353,309,133,-100,-290,-356,-269,-67,163,324,346,220,   // NOLINT
  246,356,269,34,-220,-353,-290,-67,193,346,309,100,-163,-337,-324,-133,133,324,337,163,-100,-309,-346,-193,67,290,353,220,-34,-269,-356,-246,   // NOLINT
  269,353,193,-100,-324,-324,-100,193,353,269,0,-269,-353,-193,100,324,324,100,-193,-353,-269,0,269,353,193,-100,-324,-324,-100,193,353,269,   // NOLINT
  290,337,100,-220,-356,-193,133,346,269,-34,-309,-324,-67,246,353,163,-163,-353,-246,67,324,309,34,-269,-346,-133,193,356,220,-100,-337,-290,   // NOLINT
  309,309,0,-309,-309,0,309,309,0,-309,-309,0,309,309,0,-309,-309,0,309,309,0,-309,-309,0,309,309,0,-309,-309,0,309,309,   // NOLINT
  324,269,-100,-353,-193,193,353,100,-269,-324,0,324,269,-100,-353,-193,193,353,100,-269,-324,0,324,269,-100,-353,-193,193,353,100,-269,-324,   // NOLINT
  337,220,-193,-346,-34,324,246,-163,-353,-67,309,269,-133,-356,-100,290,290,-100,-356,-133,269,309,-67,-353,-163,246,324,-34,-346,-193,220,337,   // NOLINT
  346,163,-269,-290,133,353,34,-337,-193,246,309,-100,-356,-67,324,220,-220,-324,67,356,100,-309,-246,193,337,-34,-353,-133,290,269,-163,-346,   // NOLINT
  353,100,-324,-193,269,269,-193,-324,100,353,0,-353,-100,324,193,-269,-269,193,324,-100,-353,0,353,100,-324,-193,269,269,-193,-324,100,353,   // NOLINT
  356,34,-353,-67,346,100,-337,-133,324,163,-309,-193,290,220,-269,-246,246,269,-220,-290,193,309,-163,-324,133,337,-100,-346,67,353,-34,-356,   // NOLINT
  356,-34,-353,67,346,-100,-337,133,324,-163,-309,193,290,-220,-269,246,246,-269,-220,290,193,-309,-163,324,133,-337,-100,346,67,-353,-34,356,   // NOLINT
  353,-100,-324,193,269,-269,-193,324,100,-353,0,353,-100,-324,193,269,-269,-193,324,100,-353,0,353,-100,-324,193,269,-269,-193,324,100,-353,   // NOLINT
  346,-163,-269,290,133,-353,34,337,-193,-246,309,100,-356,67,324,-220,-220,324,67,-356,100,309,-246,-193,337,34,-353,133,290,-269,-163,346,   // NOLINT
  337,-220,-193,346,-34,-324,246,163,-353,67,309,-269,-133,356,-100,-290,290,100,-356,133,269,-309,-67,353,-163,-246,324,34,-346,193,220,-337,   // NOLINT
  324,-269,-100,353,-193,-193,353,-100,-269,324,0,-324,269,100,-353,193,193,-353,100,269,-324,0,324,-269,-100,353,-193,-193,353,-100,-269,324,   // NOLINT
  309,-309,0,309,-309,0,309,-309,0,309,-309,0,309,-309,0,309,-309,0,309,-309,0,309,-309,0,309,-309,0,309,-309,0,309,-309,   // NOLINT
  290,-337,100,220,-356,193,133,-346,269,34,-309,324,-67,-246,353,-163,-163,353,-246,-67,324,-309,34,269,-346,133,193,-356,220,100,-337,290,   // NOLINT
  269,-353,193,100,-324,324,-100,-193,353,-269,0,269,-353,193,100,-324,324,-100,-193,353,-269,0,269,-353,193,100,-324,324,-100,-193,353,-269,   // NOLINT
  246,-356,269,-34,-220,353,-290,67,193,-346,309,-100,-163,337,-324,133,133,-324,337,-163,-100,309,-346,193,67,-290,353,-220,-34,269,-356,246,   // NOLINT
  220,-346,324,-163,-67,269,-356,290,-100,-133,309,-353,246,-34,-193,337,-337,193,34,-246,353,-309,133,100,-290,356,-269,67,163,-324,346,-220,   // NOLINT
  193,-324,353,-269,100,100,-269,353,-324,193,0,-193,324,-353,269,-100,-100,269,-353,324,-193,0,193,-324,353,-269,100,100,-269,353,-324,193,   // NOLINT
  163,-290,353,-337,246,-100,-67,220,-324,356,-309,193,-34,-133,269,-346,346,-269,133,34,-193,309,-356,324,-220,67,100,-246,337,-353,290,-163,   // NOLINT
  133,-246,324,-356,337,-269,163,-34,-100,220,-309,353,-346,290,-193,67,67,-193,290,-346,353,-309,220,-100,-34,163,-269,337,-356,324,-246,133,   // NOLINT
  100,-193,269,-324,353,-353,324,-269,193,-100,0,100,-193,269,-324,353,-353,324,-269,193,-100,0,100,-193,269,-324,353,-353,324,-269,193,-100,   // NOLINT
  67,-133,193,-246,290,-324,346,-356,353,-337,309,-269,220,-163,100,-34,-34,100,-163,220,-269,309,-337,353,-356,346,-324,290,-246,193,-133,67,   // NOLINT
  34,-67,100,-133,163,-193,220,-246,269,-290,309,-324,337,-346,353,-356,356,-353,346,-337,324,-309,290,-269,246,-220,193,-163,133,-100,67,-34,   // NOLINT
};

const int16_t TransformData::kDst1Transform64High[64 * 64] = {
  17,35,52,69,86,103,119,135,151,167,182,197,211,225,238,251,263,275,285,296,305,314,322,329,336,342,347,351,354,357,358,359,359,358,357,354,351,347,342,336,329,322,314,305,296,285,275,263,251,238,225,211,197,182,167,151,135,119,103,86,69,52,35,17,   // NOLINT
  35,69,103,135,167,197,225,251,275,296,314,329,342,351,357,359,358,354,347,336,322,305,285,263,238,211,182,151,119,86,52,17,-17,-52,-86,-119,-151,-182,-211,-238,-263,-285,-305,-322,-336,-347,-354,-358,-359,-357,-351,-342,-329,-314,-296,-275,-251,-225,-197,-167,-135,-103,-69,-35,   // NOLINT
  52,103,151,197,238,275,305,329,347,357,359,354,342,322,296,263,225,182,135,86,35,-17,-69,-119,-167,-211,-251,-285,-314,-336,-351,-358,-358,-351,-336,-314,-285,-251,-211,-167,-119,-69,-17,35,86,135,182,225,263,296,322,342,354,359,357,347,329,305,275,238,197,151,103,52,   // NOLINT
  69,135,197,251,296,329,351,359,354,336,305,263,211,151,86,17,-52,-119,-182,-238,-285,-322,-347,-358,-357,-342,-314,-275,-225,-167,-103,-35,35,103,167,225,275,314,342,357,358,347,322,285,238,182,119,52,-17,-86,-151,-211,-263,-305,-336,-354,-359,-351,-329,-296,-251,-197,-135,-69,   // NOLINT
  86,167,238,296,336,357,357,336,296,238,167,86,0,-86,-167,-238,-296,-336,-357,-357,-336,-296,-238,-167,-86,0,86,167,238,296,336,357,357,336,296,238,167,86,0,-86,-167,-238,-296,-336,-357,-357,-336,-296,-238,-167,-86,0,86,167,238,296,336,357,357,336,296,238,167,86,   // NOLINT
  103,197,275,329,357,354,322,263,182,86,-17,-119,-211,-285,-336,-358,-351,-314,-251,-167,-69,35,135,225,296,342,359,347,305,238,151,52,-52,-151,-238,-305,-347,-359,-342,-296,-225,-135,-35,69,167,251,314,351,358,336,285,211,119,17,-86,-182,-263,-322,-354,-357,-329,-275,-197,-103,   // NOLINT
  119,225,305,351,357,322,251,151,35,-86,-197,-285,-342,-359,-336,-275,-182,-69,52,167,263,329,358,347,296,211,103,-17,-135,-238,-314,-354,-354,-314,-238,-135,-17,103,211,296,347,358,329,263,167,52,-69,-182,-275,-336,-359,-342,-285,-197,-86,35,151,251,322,357,351,305,225,119,   // NOLINT
  135,251,329,359,336,263,151,17,-119,-238,-322,-358,-342,-275,-167,-35,103,225,314,357,347,285,182,52,-86,-211,-305,-354,-351,-296,-197,-69,69,197,296,351,354,305,211,86,-52,-182,-285,-347,-357,-314,-225,-103,35,167,275,342,358,322,238,119,-17,-151,-263,-336,-359,-329,-251,-135,   // NOLINT
  151,275,347,354,296,182,35,-119,-251,-336,-358,-314,-211,-69,86,225,322,359,329,238,103,-52,-197,-305,-357,-342,-263,-135,17,167,285,351,351,285,167,17,-135,-263,-342,-357,-305,-197,-52,103,238,329,359,322,225,86,-69,-211,-314,-358,-336,-251,-119,35,182,296,354,347,275,151,   // NOLINT
  167,296,357,336,238,86,-86,-238,-336,-357,-296,-167,0,167,296,357,336,238,86,-86,-238,-336,-357,-296,-167,0,167,296,357,336,238,86,-86,-238,-336,-357,-296,-167,0,167,296,357,336,238,86,-86,-238,-336,-357,-296,-167,0,167,296,357,336,238,86,-86,-238,-336,-357,-296,-167,   // NOLINT
  182,314,359,305,167,-17,-197,-322,-358,-296,-151,35,211,329,357,285,135,-52,-225,-336,-354,-275,-119,69,238,342,351,263,103,-86,-251,-347,-347,-251,-86,103,263,351,342,238,69,-119,-275,-354,-336,-225,-52,135,285,357,329,211,35,-151,-296,-358,-322,-197,-17,167,305,359,314,182,   // NOLINT
  197,329,354,263,86,-119,-285,-358,-314,-167,35,225,342,347,238,52,-151,-305,-359,-296,-135,69,251,351,336,211,17,-182,-322,-357,-275,-103,103,275,357,322,182,-17,-211,-336,-351,-251,-69,135,296,359,305,151,-52,-238,-347,-342,-225,-35,167,314,358,285,119,-86,-263,-354,-329,-197,   // NOLINT
  211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,   // NOLINT
  225,351,322,151,-86,-285,-359,-275,-69,167,329,347,211,-17,-238,-354,-314,-135,103,296,358,263,52,-182,-336,-342,-197,35,251,357,305,119,-119,-305,-357,-251,-35,197,342,336,182,-52,-263,-358,-296,-103,135,314,354,238,17,-211,-347,-329,-167,69,275,359,285,86,-151,-322,-351,-225,   // NOLINT
  238,357,296,86,-167,-336,-336,-167,86,296,357,238,0,-238,-357,-296,-86,167,336,336,167,-86,-296,-357,-238,0,238,357,296,86,-167,-336,-336,-167,86,296,357,238,0,-238,-357,-296,-86,167,336,336,167,-86,-296,-357,-238,0,238,357,296,86,-167,-336,-336,-167,86,296,357,238,   // NOLINT
  251,359,263,17,-238,-358,-275,-35,225,357,285,52,-211,-354,-296,-69,197,351,305,86,-182,-347,-314,-103,167,342,322,119,-151,-336,-329,-135,135,329,336,151,-119,-322,-342,-167,103,314,347,182,-86,-305,-351,-197,69,296,354,211,-52,-285,-357,-225,35,275,358,238,-17,-263,-359,-251,   // NOLINT
  263,358,225,-52,-296,-351,-182,103,322,336,135,-151,-342,-314,-86,197,354,285,35,-238,-359,-251,17,275,357,211,-69,-305,-347,-167,119,329,329,119,-167,-347,-305,-69,211,357,275,17,-251,-359,-238,35,285,354,197,-86,-314,-342,-151,135,336,322,103,-182,-351,-296,-52,225,358,263,   // NOLINT
  275,354,182,-119,-336,-314,-69,225,359,238,-52,-305,-342,-135,167,351,285,17,-263,-357,-197,103,329,322,86,-211,-358,-251,35,296,347,151,-151,-347,-296,-35,251,358,211,-86,-322,-329,-103,197,357,263,-17,-285,-351,-167,135,342,305,52,-238,-359,-225,69,314,336,119,-182,-354,-275,   // NOLINT
  285,347,135,-182,-357,-251,52,314,329,86,-225,-359,-211,103,336,305,35,-263,-354,-167,151,351,275,-17,-296,-342,-119,197,358,238,-69,-322,-322,-69,238,358,197,-119,-342,-296,-17,275,351,151,-167,-354,-263,35,305,336,103,-211,-359,-225,86,329,314,52,-251,-357,-182,135,347,285,   // NOLINT
  296,336,86,-238,-357,-167,167,357,238,-86,-336,-296,0,296,336,86,-238,-357,-167,167,357,238,-86,-336,-296,0,296,336,86,-238,-357,-167,167,357,238,-86,-336,-296,0,296,336,86,-238,-357,-167,167,357,238,-86,-336,-296,0,296,336,86,-238,-357,-167,167,357,238,-86,-336,-296,   // NOLINT
  305,322,35,-285,-336,-69,263,347,103,-238,-354,-135,211,358,167,-182,-359,-197,151,357,225,-119,-351,-251,86,342,275,-52,-329,-296,17,314,314,17,-296,-329,-52,275,342,86,-251,-351,-119,225,357,151,-197,-359,-182,167,358,211,-135,-354,-238,103,347,263,-69,-336,-285,35,322,305,   // NOLINT
  314,305,-17,-322,-296,35,329,285,-52,-336,-275,69,342,263,-86,-347,-251,103,351,238,-119,-354,-225,135,357,211,-151,-358,-197,167,359,182,-182,-359,-167,197,358,151,-211,-357,-135,225,354,119,-238,-351,-103,251,347,86,-263,-342,-69,275,336,52,-285,-329,-35,296,322,17,-305,-314,   // NOLINT
  322,285,-69,-347,-238,135,358,182,-197,-357,-119,251,342,52,-296,-314,17,329,275,-86,-351,-225,151,359,167,-211,-354,-103,263,336,35,-305,-305,35,336,263,-103,-354,-211,167,359,151,-225,-351,-86,275,329,17,-314,-296,52,342,251,-119,-357,-197,182,358,135,-238,-347,-69,285,322,   // NOLINT
  329,263,-119,-358,-167,225,347,52,-305,-296,69,351,211,-182,-357,-103,275,322,-17,-336,-251,135,359,151,-238,-342,-35,314,285,-86,-354,-197,197,354,86,-285,-314,35,342,238,-151,-359,-135,251,336,17,-322,-275,103,357,182,-211,-351,-69,296,305,-52,-347,-225,167,358,119,-263,-329,   // NOLINT
  336,238,-167,-357,-86,296,296,-86,-357,-167,238,336,0,-336,-238,167,357,86,-296,-296,86,357,167,-238,-336,0,336,238,-167,-357,-86,296,296,-86,-357,-167,238,336,0,-336,-238,167,357,86,-296,-296,86,357,167,-238,-336,0,336,238,-167,-357,-86,296,296,-86,-357,-167,238,336,   // NOLINT
  342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,0,342,211,-211,-342,   // NOLINT
  347,182,-251,-314,86,359,103,-305,-263,167,351,17,-342,-197,238,322,-69,-358,-119,296,275,-151,-354,-35,336,211,-225,-329,52,357,135,-285,-285,135,357,52,-329,-225,211,336,-35,-354,-151,275,296,-119,-358,-69,322,238,-197,-342,17,351,167,-263,-305,103,359,86,-314,-251,182,347,   // NOLINT
  351,151,-285,-275,167,347,-17,-354,-135,296,263,-182,-342,35,357,119,-305,-251,197,336,-52,-358,-103,314,238,-211,-329,69,359,86,-322,-225,225,322,-86,-359,-69,329,211,-238,-314,103,358,52,-336,-197,251,305,-119,-357,-35,342,182,-263,-296,135,354,17,-347,-167,275,285,-151,-351,   // NOLINT
  354,119,-314,-225,238,305,-135,-351,17,357,103,-322,-211,251,296,-151,-347,35,358,86,-329,-197,263,285,-167,-342,52,359,69,-336,-182,275,275,-182,-336,69,359,52,-342,-167,285,263,-197,-329,86,358,35,-347,-151,296,251,-211,-322,103,357,17,-351,-135,305,238,-225,-314,119,354,   // NOLINT
  357,86,-336,-167,296,238,-238,-296,167,336,-86,-357,0,357,86,-336,-167,296,238,-238,-296,167,336,-86,-357,0,357,86,-336,-167,296,238,-238,-296,167,336,-86,-357,0,357,86,-336,-167,296,238,-238,-296,167,336,-86,-357,0,357,86,-336,-167,296,238,-238,-296,167,336,-86,-357,   // NOLINT
  358,52,-351,-103,336,151,-314,-197,285,238,-251,-275,211,305,-167,-329,119,347,-69,-357,17,359,35,-354,-86,342,135,-322,-182,296,225,-263,-263,225,296,-182,-322,135,342,-86,-354,35,359,17,-357,-69,347,119,-329,-167,305,211,-275,-251,238,285,-197,-314,151,336,-103,-351,52,358,   // NOLINT
  359,17,-358,-35,357,52,-354,-69,351,86,-347,-103,342,119,-336,-135,329,151,-322,-167,314,182,-305,-197,296,211,-285,-225,275,238,-263,-251,251,263,-238,-275,225,285,-211,-296,197,305,-182,-314,167,322,-151,-329,135,336,-119,-342,103,347,-86,-351,69,354,-52,-357,35,358,-17,-359,   // NOLINT
  359,-17,-358,35,357,-52,-354,69,351,-86,-347,103,342,-119,-336,135,329,-151,-322,167,314,-182,-305,197,296,-211,-285,225,275,-238,-263,251,251,-263,-238,275,225,-285,-211,296,197,-305,-182,314,167,-322,-151,329,135,-336,-119,342,103,-347,-86,351,69,-354,-52,357,35,-358,-17,359,   // NOLINT
  358,-52,-351,103,336,-151,-314,197,285,-238,-251,275,211,-305,-167,329,119,-347,-69,357,17,-359,35,354,-86,-342,135,322,-182,-296,225,263,-263,-225,296,182,-322,-135,342,86,-354,-35,359,-17,-357,69,347,-119,-329,167,305,-211,-275,251,238,-285,-197,314,151,-336,-103,351,52,-358,   // NOLINT
  357,-86,-336,167,296,-238,-238,296,167,-336,-86,357,0,-357,86,336,-167,-296,238,238,-296,-167,336,86,-357,0,357,-86,-336,167,296,-238,-238,296,167,-336,-86,357,0,-357,86,336,-167,-296,238,238,-296,-167,336,86,-357,0,357,-86,-336,167,296,-238,-238,296,167,-336,-86,357,   // NOLINT
  354,-119,-314,225,238,-305,-135,351,17,-357,103,322,-211,-251,296,151,-347,-35,358,-86,-329,197,263,-285,-167,342,52,-359,69,336,-182,-275,275,182,-336,-69,359,-52,-342,167,285,-263,-197,329,86,-358,35,347,-151,-296,251,211,-322,-103,357,-17,-351,135,305,-238,-225,314,119,-354,   // NOLINT
  351,-151,-285,275,167,-347,-17,354,-135,-296,263,182,-342,-35,357,-119,-305,251,197,-336,-52,358,-103,-314,238,211,-329,-69,359,-86,-322,225,225,-322,-86,359,-69,-329,211,238,-314,-103,358,-52,-336,197,251,-305,-119,357,-35,-342,182,263,-296,-135,354,-17,-347,167,275,-285,-151,351,   // NOLINT
  347,-182,-251,314,86,-359,103,305,-263,-167,351,-17,-342,197,238,-322,-69,358,-119,-296,275,151,-354,35,336,-211,-225,329,52,-357,135,285,-285,-135,357,-52,-329,225,211,-336,-35,354,-151,-275,296,119,-358,69,322,-238,-197,342,17,-351,167,263,-305,-103,359,-86,-314,251,182,-347,   // NOLINT
  342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,   // NOLINT
  336,-238,-167,357,-86,-296,296,86,-357,167,238,-336,0,336,-238,-167,357,-86,-296,296,86,-357,167,238,-336,0,336,-238,-167,357,-86,-296,296,86,-357,167,238,-336,0,336,-238,-167,357,-86,-296,296,86,-357,167,238,-336,0,336,-238,-167,357,-86,-296,296,86,-357,167,238,-336,   // NOLINT
  329,-263,-119,358,-167,-225,347,-52,-305,296,69,-351,211,182,-357,103,275,-322,-17,336,-251,-135,359,-151,-238,342,-35,-314,285,86,-354,197,197,-354,86,285,-314,-35,342,-238,-151,359,-135,-251,336,-17,-322,275,103,-357,182,211,-351,69,296,-305,-52,347,-225,-167,358,-119,-263,329,   // NOLINT
  322,-285,-69,347,-238,-135,358,-182,-197,357,-119,-251,342,-52,-296,314,17,-329,275,86,-351,225,151,-359,167,211,-354,103,263,-336,35,305,-305,-35,336,-263,-103,354,-211,-167,359,-151,-225,351,-86,-275,329,-17,-314,296,52,-342,251,119,-357,197,182,-358,135,238,-347,69,285,-322,   // NOLINT
  314,-305,-17,322,-296,-35,329,-285,-52,336,-275,-69,342,-263,-86,347,-251,-103,351,-238,-119,354,-225,-135,357,-211,-151,358,-197,-167,359,-182,-182,359,-167,-197,358,-151,-211,357,-135,-225,354,-119,-238,351,-103,-251,347,-86,-263,342,-69,-275,336,-52,-285,329,-35,-296,322,-17,-305,314,   // NOLINT
  305,-322,35,285,-336,69,263,-347,103,238,-354,135,211,-358,167,182,-359,197,151,-357,225,119,-351,251,86,-342,275,52,-329,296,17,-314,314,-17,-296,329,-52,-275,342,-86,-251,351,-119,-225,357,-151,-197,359,-182,-167,358,-211,-135,354,-238,-103,347,-263,-69,336,-285,-35,322,-305,   // NOLINT
  296,-336,86,238,-357,167,167,-357,238,86,-336,296,0,-296,336,-86,-238,357,-167,-167,357,-238,-86,336,-296,0,296,-336,86,238,-357,167,167,-357,238,86,-336,296,0,-296,336,-86,-238,357,-167,-167,357,-238,-86,336,-296,0,296,-336,86,238,-357,167,167,-357,238,86,-336,296,   // NOLINT
  285,-347,135,182,-357,251,52,-314,329,-86,-225,359,-211,-103,336,-305,35,263,-354,167,151,-351,275,17,-296,342,-119,-197,358,-238,-69,322,-322,69,238,-358,197,119,-342,296,-17,-275,351,-151,-167,354,-263,-35,305,-336,103,211,-359,225,86,-329,314,-52,-251,357,-182,-135,347,-285,   // NOLINT
  275,-354,182,119,-336,314,-69,-225,359,-238,-52,305,-342,135,167,-351,285,-17,-263,357,-197,-103,329,-322,86,211,-358,251,35,-296,347,-151,-151,347,-296,35,251,-358,211,86,-322,329,-103,-197,357,-263,-17,285,-351,167,135,-342,305,-52,-238,359,-225,-69,314,-336,119,182,-354,275,   // NOLINT
  263,-358,225,52,-296,351,-182,-103,322,-336,135,151,-342,314,-86,-197,354,-285,35,238,-359,251,17,-275,357,-211,-69,305,-347,167,119,-329,329,-119,-167,347,-305,69,211,-357,275,-17,-251,359,-238,-35,285,-354,197,86,-314,342,-151,-135,336,-322,103,182,-351,296,-52,-225,358,-263,   // NOLINT
  251,-359,263,-17,-238,358,-275,35,225,-357,285,-52,-211,354,-296,69,197,-351,305,-86,-182,347,-314,103,167,-342,322,-119,-151,336,-329,135,135,-329,336,-151,-119,322,-342,167,103,-314,347,-182,-86,305,-351,197,69,-296,354,-211,-52,285,-357,225,35,-275,358,-238,-17,263,-359,251,   // NOLINT
  238,-357,296,-86,-167,336,-336,167,86,-296,357,-238,0,238,-357,296,-86,-167,336,-336,167,86,-296,357,-238,0,238,-357,296,-86,-167,336,-336,167,86,-296,357,-238,0,238,-357,296,-86,-167,336,-336,167,86,-296,357,-238,0,238,-357,296,-86,-167,336,-336,167,86,-296,357,-238,   // NOLINT
  225,-351,322,-151,-86,285,-359,275,-69,-167,329,-347,211,17,-238,354,-314,135,103,-296,358,-263,52,182,-336,342,-197,-35,251,-357,305,-119,-119,305,-357,251,-35,-197,342,-336,182,52,-263,358,-296,103,135,-314,354,-238,17,211,-347,329,-167,-69,275,-359,285,-86,-151,322,-351,225,   // NOLINT
  211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,0,211,-342,342,-211,   // NOLINT
  197,-329,354,-263,86,119,-285,358,-314,167,35,-225,342,-347,238,-52,-151,305,-359,296,-135,-69,251,-351,336,-211,17,182,-322,357,-275,103,103,-275,357,-322,182,17,-211,336,-351,251,-69,-135,296,-359,305,-151,-52,238,-347,342,-225,35,167,-314,358,-285,119,86,-263,354,-329,197,   // NOLINT
  182,-314,359,-305,167,17,-197,322,-358,296,-151,-35,211,-329,357,-285,135,52,-225,336,-354,275,-119,-69,238,-342,351,-263,103,86,-251,347,-347,251,-86,-103,263,-351,342,-238,69,119,-275,354,-336,225,-52,-135,285,-357,329,-211,35,151,-296,358,-322,197,-17,-167,305,-359,314,-182,   // NOLINT
  167,-296,357,-336,238,-86,-86,238,-336,357,-296,167,0,-167,296,-357,336,-238,86,86,-238,336,-357,296,-167,0,167,-296,357,-336,238,-86,-86,238,-336,357,-296,167,0,-167,296,-357,336,-238,86,86,-238,336,-357,296,-167,0,167,-296,357,-336,238,-86,-86,238,-336,357,-296,167,   // NOLINT
  151,-275,347,-354,296,-182,35,119,-251,336,-358,314,-211,69,86,-225,322,-359,329,-238,103,52,-197,305,-357,342,-263,135,17,-167,285,-351,351,-285,167,-17,-135,263,-342,357,-305,197,-52,-103,238,-329,359,-322,225,-86,-69,211,-314,358,-336,251,-119,-35,182,-296,354,-347,275,-151,   // NOLINT
  135,-251,329,-359,336,-263,151,-17,-119,238,-322,358,-342,275,-167,35,103,-225,314,-357,347,-285,182,-52,-86,211,-305,354,-351,296,-197,69,69,-197,296,-351,354,-305,211,-86,-52,182,-285,347,-357,314,-225,103,35,-167,275,-342,358,-322,238,-119,-17,151,-263,336,-359,329,-251,135,   // NOLINT
  119,-225,305,-351,357,-322,251,-151,35,86,-197,285,-342,359,-336,275,-182,69,52,-167,263,-329,358,-347,296,-211,103,17,-135,238,-314,354,-354,314,-238,135,-17,-103,211,-296,347,-358,329,-263,167,-52,-69,182,-275,336,-359,342,-285,197,-86,-35,151,-251,322,-357,351,-305,225,-119,   // NOLINT
  103,-197,275,-329,357,-354,322,-263,182,-86,-17,119,-211,285,-336,358,-351,314,-251,167,-69,-35,135,-225,296,-342,359,-347,305,-238,151,-52,-52,151,-238,305,-347,359,-342,296,-225,135,-35,-69,167,-251,314,-351,358,-336,285,-211,119,-17,-86,182,-263,322,-354,357,-329,275,-197,103,   // NOLINT
  86,-167,238,-296,336,-357,357,-336,296,-238,167,-86,0,86,-167,238,-296,336,-357,357,-336,296,-238,167,-86,0,86,-167,238,-296,336,-357,357,-336,296,-238,167,-86,0,86,-167,238,-296,336,-357,357,-336,296,-238,167,-86,0,86,-167,238,-296,336,-357,357,-336,296,-238,167,-86,   // NOLINT
  69,-135,197,-251,296,-329,351,-359,354,-336,305,-263,211,-151,86,-17,-52,119,-182,238,-285,322,-347,358,-357,342,-314,275,-225,167,-103,35,35,-103,167,-225,275,-314,342,-357,358,-347,322,-285,238,-182,119,-52,-17,86,-151,211,-263,305,-336,354,-359,351,-329,296,-251,197,-135,69,   // NOLINT
  52,-103,151,-197,238,-275,305,-329,347,-357,359,-354,342,-322,296,-263,225,-182,135,-86,35,17,-69,119,-167,211,-251,285,-314,336,-351,358,-358,351,-336,314,-285,251,-211,167,-119,69,-17,-35,86,-135,182,-225,263,-296,322,-342,354,-359,357,-347,329,-305,275,-238,197,-151,103,-52,   // NOLINT
  35,-69,103,-135,167,-197,225,-251,275,-296,314,-329,342,-351,357,-359,358,-354,347,-336,322,-305,285,-263,238,-211,182,-151,119,-86,52,-17,-17,52,-86,119,-151,182,-211,238,-263,285,-305,322,-336,347,-354,358,-359,357,-351,342,-329,314,-296,275,-251,225,-197,167,-135,103,-69,35,   // NOLINT
  17,-35,52,-69,86,-103,119,-135,151,-167,182,-197,211,-225,238,-251,263,-275,285,-296,305,-314,322,-329,336,-342,347,-351,354,-357,358,-359,359,-358,357,-354,351,-347,342,-336,329,-322,314,-305,296,-285,275,-263,251,-238,225,-211,197,-182,167,-151,135,-119,103,-86,69,-52,35,-17,   // NOLINT
};

const int16_t TransformData::kDst7Transform4High[4 * 4] = {
  117,219,296,336,   // NOLINT
  296,296,0,-296,   // NOLINT
  336,-117,-296,219,   // NOLINT
  219,-336,296,-117,   // NOLINT
};

const int16_t TransformData::kDst7Transform8High[8 * 8] = {
  65,127,185,237,280,314,338,350,   // NOLINT
  185,314,350,280,127,-65,-237,-338,   // NOLINT
  280,338,127,-185,-350,-237,65,314,   // NOLINT
  338,185,-237,-314,65,350,127,-280,   // NOLINT
  350,-65,-338,127,314,-185,-280,237,   // NOLINT
  314,-280,-65,338,-237,-127,350,-185,   // NOLINT
  237,-350,280,-65,-185,338,-314,127,   // NOLINT
  127,-237,314,-350,338,-280,185,-65,   // NOLINT
};

const int16_t TransformData::kDst7Transform16High[16 * 16] = {
  34,67,100,133,163,193,220,246,269,290,309,324,337,346,353,356,   // NOLINT
  100,193,269,324,353,353,324,269,193,100,0,-100,-193,-269,-324,-353,   // NOLINT
  163,290,353,337,246,100,-67,-220,-324,-356,-309,-193,-34,133,269,346,   // NOLINT
  220,346,324,163,-67,-269,-356,-290,-100,133,309,353,246,34,-193,-337,   // NOLINT
  269,353,193,-100,-324,-324,-100,193,353,269,0,-269,-353,-193,100,324,   // NOLINT
  309,309,0,-309,-309,0,309,309,0,-309,-309,0,309,309,0,-309,   // NOLINT
  337,220,-193,-346,-34,324,246,-163,-353,-67,309,269,-133,-356,-100,290,   // NOLINT
  353,100,-324,-193,269,269,-193,-324,100,353,0,-353,-100,324,193,-269,   // NOLINT
  356,-34,-353,67,346,-100,-337,133,324,-163,-309,193,290,-220,-269,246,   // NOLINT
  346,-163,-269,290,133,-353,34,337,-193,-246,309,100,-356,67,324,-220,   // NOLINT
  324,-269,-100,353,-193,-193,353,-100,-269,324,0,-324,269,100,-353,193,   // NOLINT
  290,-337,100,220,-356,193,133,-346,269,34,-309,324,-67,-246,353,-163,   // NOLINT
  246,-356,269,-34,-220,353,-290,67,193,-346,309,-100,-163,337,-324,133,   // NOLINT
  193,-324,353,-269,100,100,-269,353,-324,193,0,-193,324,-353,269,-100,   // NOLINT
  133,-246,324,-356,337,-269,163,-34,-100,220,-309,353,-346,290,-193,67,   // NOLINT
  67,-133,193,-246,290,-324,346,-356,353,-337,309,-269,220,-163,100,-34,   // NOLINT
};

const int16_t TransformData::kDst7Transform32High[32 * 32] = {
  17,35,52,69,86,103,119,135,151,167,182,197,211,225,238,251,263,275,285,296,305,314,322,329,336,342,347,351,354,357,358,359,   // NOLINT
  52,103,151,197,238,275,305,329,347,357,359,354,342,322,296,263,225,182,135,86,35,-17,-69,-119,-167,-211,-251,-285,-314,-336,-351,-358,   // NOLINT
  86,167,238,296,336,357,357,336,296,238,167,86,0,-86,-167,-238,-296,-336,-357,-357,-336,-296,-238,-167,-86,0,86,167,238,296,336,357,   // NOLINT
  119,225,305,351,357,322,251,151,35,-86,-197,-285,-342,-359,-336,-275,-182,-69,52,167,263,329,358,347,296,211,103,-17,-135,-238,-314,-354,   // NOLINT
  151,275,347,354,296,182,35,-119,-251,-336,-358,-314,-211,-69,86,225,322,359,329,238,103,-52,-197,-305,-357,-342,-263,-135,17,167,285,351,   // NOLINT
  182,314,359,305,167,-17,-197,-322,-358,-296,-151,35,211,329,357,285,135,-52,-225,-336,-354,-275,-119,69,238,342,351,263,103,-86,-251,-347,   // NOLINT
  211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,342,211,0,-211,-342,-342,-211,0,211,342,   // NOLINT
  238,357,296,86,-167,-336,-336,-167,86,296,357,238,0,-238,-357,-296,-86,167,336,336,167,-86,-296,-357,-238,0,238,357,296,86,-167,-336,   // NOLINT
  263,358,225,-52,-296,-351,-182,103,322,336,135,-151,-342,-314,-86,197,354,285,35,-238,-359,-251,17,275,357,211,-69,-305,-347,-167,119,329,   // NOLINT
  285,347,135,-182,-357,-251,52,314,329,86,-225,-359,-211,103,336,305,35,-263,-354,-167,151,351,275,-17,-296,-342,-119,197,358,238,-69,-322,   // NOLINT
  305,322,35,-285,-336,-69,263,347,103,-238,-354,-135,211,358,167,-182,-359,-197,151,357,225,-119,-351,-251,86,342,275,-52,-329,-296,17,314,   // NOLINT
  322,285,-69,-347,-238,135,358,182,-197,-357,-119,251,342,52,-296,-314,17,329,275,-86,-351,-225,151,359,167,-211,-354,-103,263,336,35,-305,   // NOLINT
  336,238,-167,-357,-86,296,296,-86,-357,-167,238,336,0,-336,-238,167,357,86,-296,-296,86,357,167,-238,-336,0,336,238,-167,-357,-86,296,   // NOLINT
  347,182,-251,-314,86,359,103,-305,-263,167,351,17,-342,-197,238,322,-69,-358,-119,296,275,-151,-354,-35,336,211,-225,-329,52,357,135,-285,   // NOLINT
  354,119,-314,-225,238,305,-135,-351,17,357,103,-322,-211,251,296,-151,-347,35,358,86,-329,-197,263,285,-167,-342,52,359,69,-336,-182,275,   // NOLINT
  358,52,-351,-103,336,151,-314,-197,285,238,-251,-275,211,305,-167,-329,119,347,-69,-357,17,359,35,-354,-86,342,135,-322,-182,296,225,-263,   // NOLINT
  359,-17,-358,35,357,-52,-354,69,351,-86,-347,103,342,-119,-336,135,329,-151,-322,167,314,-182,-305,197,296,-211,-285,225,275,-238,-263,251,   // NOLINT
  357,-86,-336,167,296,-238,-238,296,167,-336,-86,357,0,-357,86,336,-167,-296,238,238,-296,-167,336,86,-357,0,357,-86,-336,167,296,-238,   // NOLINT
  351,-151,-285,275,167,-347,-17,354,-135,-296,263,182,-342,-35,357,-119,-305,251,197,-336,-52,358,-103,-314,238,211,-329,-69,359,-86,-322,225,   // NOLINT
  342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,-211,342,0,-342,211,211,-342,0,342,-211,   // NOLINT
  329,-263,-119,358,-167,-225,347,-52,-305,296,69,-351,211,182,-357,103,275,-322,-17,336,-251,-135,359,-151,-238,342,-35,-314,285,86,-354,197,   // NOLINT
  314,-305,-17,322,-296,-35,329,-285,-52,336,-275,-69,342,-263,-86,347,-251,-103,351,-238,-119,354,-225,-135,357,-211,-151,358,-197,-167,359,-182,   // NOLINT
  296,-336,86,238,-357,167,167,-357,238,86,-336,296,0,-296,336,-86,-238,357,-167,-167,357,-238,-86,336,-296,0,296,-336,86,238,-357,167,   // NOLINT
  275,-354,182,119,-336,314,-69,-225,359,-238,-52,305,-342,135,167,-351,285,-17,-263,357,-197,-103,329,-322,86,211,-358,251,35,-296,347,-151,   // NOLINT
  251,-359,263,-17,-238,358,-275,35,225,-357,285,-52,-211,354,-296,69,197,-351,305,-86,-182,347,-314,103,167,-342,322,-119,-151,336,-329,135,   // NOLINT
  225,-351,322,-151,-86,285,-359,275,-69,-167,329,-347,211,17,-238,354,-314,135,103,-296,358,-263,52,182,-336,342,-197,-35,251,-357,305,-119,   // NOLINT
  197,-329,354,-263,86,119,-285,358,-314,167,35,-225,342,-347,238,-52,-151,305,-359,296,-135,-69,251,-351,336,-211,17,182,-322,357,-275,103,   // NOLINT
  167,-296,357,-336,238,-86,-86,238,-336,357,-296,167,0,-167,296,-357,336,-238,86,86,-238,336,-357,296,-167,0,167,-296,357,-336,238,-86,   // NOLINT
  135,-251,329,-359,336,-263,151,-17,-119,238,-322,358,-342,275,-167,35,103,-225,314,-357,347,-285,182,-52,-86,211,-305,354,-351,296,-197,69,   // NOLINT
  103,-197,275,-329,357,-354,322,-263,182,-86,-17,119,-211,285,-336,358,-351,314,-251,167,-69,-35,135,-225,296,-342,359,-347,305,-238,151,-52,   // NOLINT
  69,-135,197,-251,296,-329,351,-359,354,-336,305,-263,211,-151,86,-17,-52,119,-182,238,-285,322,-347,358,-357,342,-314,275,-225,167,-103,35,   // NOLINT
  35,-69,103,-135,167,-197,225,-251,275,-296,314,-329,342,-351,357,-359,358,-354,347,-336,322,-305,285,-263,238,-211,182,-151,119,-86,52,-17,   // NOLINT
};

const int16_t TransformData::kDst7Transform64High[64 * 64] = {
  9,18,26,35,44,53,61,70,78,87,95,104,112,121,129,137,145,153,161,169,177,184,192,199,206,213,220,227,234,241,247,253,260,266,271,277,283,288,293,298,303,308,312,317,321,325,328,332,335,338,341,344,347,349,351,353,355,356,357,358,359,360,360,361,   // NOLINT
  26,53,78,104,129,153,177,199,220,241,260,277,293,308,321,332,341,349,355,358,360,360,358,355,349,341,332,321,308,293,277,260,241,220,199,177,153,129,104,78,53,26,0,-26,-53,-78,-104,-129,-153,-177,-199,-220,-241,-260,-277,-293,-308,-321,-332,-341,-349,-355,-358,-360,   // NOLINT
  44,87,129,169,206,241,271,298,321,338,351,358,361,357,349,335,317,293,266,234,199,161,121,78,35,-9,-53,-95,-137,-177,-213,-247,-277,-303,-325,-341,-353,-359,-360,-356,-347,-332,-312,-288,-260,-227,-192,-153,-112,-70,-26,18,61,104,145,184,220,253,283,308,328,344,355,360,   // NOLINT
  61,121,177,227,271,308,335,353,360,357,344,321,288,247,199,145,87,26,-35,-95,-153,-206,-253,-293,-325,-347,-358,-360,-351,-332,-303,-266,-220,-169,-112,-53,9,70,129,184,234,277,312,338,355,361,356,341,317,283,241,192,137,78,18,-44,-104,-161,-213,-260,-298,-328,-349,-359,   // NOLINT
  78,153,220,277,321,349,360,355,332,293,241,177,104,26,-53,-129,-199,-260,-308,-341,-358,-358,-341,-308,-260,-199,-129,-53,26,104,177,241,293,332,355,360,349,321,277,220,153,78,0,-78,-153,-220,-277,-321,-349,-360,-355,-332,-293,-241,-177,-104,-26,53,129,199,260,308,341,358,   // NOLINT
  95,184,260,317,351,360,344,303,241,161,70,-26,-121,-206,-277,-328,-356,-358,-335,-288,-220,-137,-44,53,145,227,293,338,359,355,325,271,199,112,18,-78,-169,-247,-308,-347,-361,-349,-312,-253,-177,-87,9,104,192,266,321,353,360,341,298,234,153,61,-35,-129,-213,-283,-332,-357,   // NOLINT
  112,213,293,344,361,341,288,206,104,-9,-121,-220,-298,-347,-360,-338,-283,-199,-95,18,129,227,303,349,360,335,277,192,87,-26,-137,-234,-308,-351,-359,-332,-271,-184,-78,35,145,241,312,353,358,328,266,177,70,-44,-153,-247,-317,-355,-357,-325,-260,-169,-61,53,161,253,321,356,   // NOLINT
  129,241,321,358,349,293,199,78,-53,-177,-277,-341,-360,-332,-260,-153,-26,104,220,308,355,355,308,220,104,-26,-153,-260,-332,-360,-341,-277,-177,-53,78,199,293,349,358,321,241,129,0,-129,-241,-321,-358,-349,-293,-199,-78,53,177,277,341,360,332,260,153,26,-104,-220,-308,-355,   // NOLINT
  145,266,341,359,317,220,87,-61,-199,-303,-356,-349,-283,-169,-26,121,247,332,361,328,241,112,-35,-177,-288,-351,-355,-298,-192,-53,95,227,321,360,338,260,137,-9,-153,-271,-344,-358,-312,-213,-78,70,206,308,357,347,277,161,18,-129,-253,-335,-360,-325,-234,-104,44,184,293,353,   // NOLINT
  161,288,355,347,266,129,-35,-192,-308,-359,-335,-241,-95,70,220,325,361,321,213,61,-104,-247,-338,-358,-303,-184,-26,137,271,349,353,283,153,-9,-169,-293,-356,-344,-260,-121,44,199,312,360,332,234,87,-78,-227,-328,-360,-317,-206,-53,112,253,341,357,298,177,18,-145,-277,-351,   // NOLINT
  177,308,360,321,199,26,-153,-293,-358,-332,-220,-53,129,277,355,341,241,78,-104,-260,-349,-349,-260,-104,78,241,341,355,277,129,-53,-220,-332,-358,-293,-153,26,199,321,360,308,177,0,-177,-308,-360,-321,-199,-26,153,293,358,332,220,53,-129,-277,-355,-341,-241,-78,104,260,349,   // NOLINT
  192,325,358,283,121,-78,-253,-351,-341,-227,-44,153,303,361,308,161,-35,-220,-338,-353,-260,-87,112,277,357,328,199,9,-184,-321,-359,-288,-129,70,247,349,344,234,53,-145,-298,-360,-312,-169,26,213,335,355,266,95,-104,-271,-356,-332,-206,-18,177,317,360,293,137,-61,-241,-347,   // NOLINT
  206,338,349,234,35,-177,-325,-356,-260,-70,145,308,360,283,104,-112,-288,-360,-303,-137,78,266,357,321,169,-44,-241,-351,-335,-199,9,213,341,347,227,26,-184,-328,-355,-253,-61,153,312,359,277,95,-121,-293,-361,-298,-129,87,271,358,317,161,-53,-247,-353,-332,-192,18,220,344,   // NOLINT
  220,349,332,177,-53,-260,-358,-308,-129,104,293,360,277,78,-153,-321,-355,-241,-26,199,341,341,199,-26,-241,-355,-321,-153,78,277,360,293,104,-129,-308,-358,-260,-53,177,332,349,220,0,-220,-349,-332,-177,53,260,358,308,129,-104,-293,-360,-277,-78,153,321,355,241,26,-199,-341,   // NOLINT
  234,356,308,112,-137,-321,-351,-213,26,253,359,293,87,-161,-332,-344,-192,53,271,361,277,61,-184,-341,-335,-169,78,288,360,260,35,-206,-349,-325,-145,104,303,357,241,9,-227,-355,-312,-121,129,317,353,220,-18,-247,-358,-298,-95,153,328,347,199,-44,-266,-360,-283,-70,177,338,   // NOLINT
  247,360,277,44,-213,-355,-303,-87,177,344,325,129,-137,-328,-341,-169,95,308,353,206,-53,-283,-359,-241,9,253,360,271,35,-220,-356,-298,-78,184,347,321,121,-145,-332,-338,-161,104,312,351,199,-61,-288,-358,-234,18,260,361,266,26,-227,-357,-293,-70,192,349,317,112,-153,-335,   // NOLINT
  260,360,241,-26,-277,-358,-220,53,293,355,199,-78,-308,-349,-177,104,321,341,153,-129,-332,-332,-129,153,341,321,104,-177,-349,-308,-78,199,355,293,53,-220,-358,-277,-26,241,360,260,0,-260,-360,-241,26,277,358,220,-53,-293,-355,-199,78,308,349,177,-104,-321,-341,-153,129,332,   // NOLINT
  271,357,199,-95,-325,-332,-112,184,355,283,18,-260,-359,-213,78,317,338,129,-169,-351,-293,-35,247,360,227,-61,-308,-344,-145,153,347,303,53,-234,-361,-241,44,298,349,161,-137,-341,-312,-70,220,360,253,-26,-288,-353,-177,121,335,321,87,-206,-358,-266,9,277,356,192,-104,-328,   // NOLINT
  283,351,153,-161,-353,-277,9,288,349,145,-169,-355,-271,18,293,347,137,-177,-356,-266,26,298,344,129,-184,-357,-260,35,303,341,121,-192,-358,-253,44,308,338,112,-199,-359,-247,53,312,335,104,-206,-360,-241,61,317,332,95,-213,-360,-234,70,321,328,87,-220,-361,-227,78,325,   // NOLINT
  293,341,104,-220,-360,-199,129,349,277,-26,-308,-332,-78,241,358,177,-153,-355,-260,53,321,321,53,-260,-355,-153,177,358,241,-78,-332,-308,-26,277,349,129,-199,-360,-220,104,341,293,0,-293,-341,-104,220,360,199,-129,-349,-277,26,308,332,78,-241,-358,-177,153,355,260,-53,-321,   // NOLINT
  303,328,53,-271,-347,-104,234,357,153,-192,-361,-199,145,356,241,-95,-344,-277,44,325,308,9,-298,-332,-61,266,349,112,-227,-358,-161,184,360,206,-137,-355,-247,87,341,283,-35,-321,-312,-18,293,335,70,-260,-351,-121,220,359,169,-177,-360,-213,129,353,253,-78,-338,-288,26,317,   // NOLINT
  312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,-312,0,312,312,0,-312,   // NOLINT
  321,293,-53,-341,-260,104,355,220,-153,-360,-177,199,358,129,-241,-349,-78,277,332,26,-308,-308,26,332,277,-78,-349,-241,129,358,199,-177,-360,-153,220,355,104,-260,-341,-53,293,321,0,-321,-293,53,341,260,-104,-355,-220,153,360,177,-199,-358,-129,241,349,78,-277,-332,-26,308,   // NOLINT
  328,271,-104,-357,-192,199,356,95,-277,-325,9,332,266,-112,-358,-184,206,355,87,-283,-321,18,335,260,-121,-359,-177,213,353,78,-288,-317,26,338,253,-129,-360,-169,220,351,70,-293,-312,35,341,247,-137,-360,-161,227,349,61,-298,-308,44,344,241,-145,-361,-153,234,347,53,-303,   // NOLINT
  335,247,-153,-360,-112,277,317,-44,-349,-213,192,355,70,-303,-293,87,357,177,-227,-344,-26,325,266,-129,-361,-137,260,328,-18,-341,-234,169,358,95,-288,-308,61,353,199,-206,-351,-53,312,283,-104,-359,-161,241,338,9,-332,-253,145,360,121,-271,-321,35,347,220,-184,-356,-78,298,   // NOLINT
  341,220,-199,-349,-26,332,241,-177,-355,-53,321,260,-153,-358,-78,308,277,-129,-360,-104,293,293,-104,-360,-129,277,308,-78,-358,-153,260,321,-53,-355,-177,241,332,-26,-349,-199,220,341,0,-341,-220,199,349,26,-332,-241,177,355,53,-321,-260,153,358,78,-308,-277,129,360,104,-293,   // NOLINT
  347,192,-241,-325,61,358,137,-283,-293,121,360,78,-317,-253,177,351,18,-341,-206,227,332,-44,-356,-153,271,303,-104,-361,-95,308,266,-161,-355,-35,335,220,-213,-338,26,353,169,-260,-312,87,360,112,-298,-277,145,357,53,-328,-234,199,344,-9,-349,-184,247,321,-70,-359,-129,288,   // NOLINT
  351,161,-277,-288,145,355,18,-347,-177,266,298,-129,-357,-35,341,192,-253,-308,112,359,53,-335,-206,241,317,-95,-360,-70,328,220,-227,-325,78,361,87,-321,-234,213,332,-61,-360,-104,312,247,-199,-338,44,358,121,-303,-260,184,344,-26,-356,-137,293,271,-169,-349,9,353,153,-283,   // NOLINT
  355,129,-308,-241,220,321,-104,-358,-26,349,153,-293,-260,199,332,-78,-360,-53,341,177,-277,-277,177,341,-53,-360,-78,332,199,-260,-293,153,349,-26,-358,-104,321,220,-241,-308,129,355,0,-355,-129,308,241,-220,-321,104,358,26,-349,-153,293,260,-199,-332,78,360,53,-341,-177,277,   // NOLINT
  357,95,-332,-184,283,260,-213,-317,129,351,-35,-360,-61,344,153,-303,-234,241,298,-161,-341,70,360,26,-353,-121,321,206,-266,-277,192,328,-104,-356,9,358,87,-335,-177,288,253,-220,-312,137,349,-44,-361,-53,347,145,-308,-227,247,293,-169,-338,78,359,18,-355,-112,325,199,-271,   // NOLINT
  359,61,-349,-121,328,177,-298,-227,260,271,-213,-308,161,335,-104,-353,44,360,18,-357,-78,344,137,-321,-192,288,241,-247,-283,199,317,-145,-341,87,356,-26,-361,-35,355,95,-338,-153,312,206,-277,-253,234,293,-184,-325,129,347,-70,-358,9,360,53,-351,-112,332,169,-303,-220,266,   // NOLINT
  360,26,-358,-53,355,78,-349,-104,341,129,-332,-153,321,177,-308,-199,293,220,-277,-241,260,260,-241,-277,220,293,-199,-308,177,321,-153,-332,129,341,-104,-349,78,355,-53,-358,26,360,0,-360,-26,358,53,-355,-78,349,104,-341,-129,332,153,-321,-177,308,199,-293,-220,277,241,-260,   // NOLINT
  361,-9,-360,18,360,-26,-359,35,358,-44,-357,53,356,-61,-355,70,353,-78,-351,87,349,-95,-347,104,344,-112,-341,121,338,-129,-335,137,332,-145,-328,153,325,-161,-321,169,317,-177,-312,184,308,-192,-303,199,298,-206,-293,213,288,-220,-283,227,277,-234,-271,241,266,-247,-260,253,   // NOLINT
  360,-44,-355,87,344,-129,-328,169,308,-206,-283,241,253,-271,-220,298,184,-321,-145,338,104,-351,-61,358,18,-361,26,357,-70,-349,112,335,-153,-317,192,293,-227,-266,260,234,-288,-199,312,161,-332,-121,347,78,-356,-35,360,-9,-359,53,353,-95,-341,137,325,-177,-303,213,277,-247,   // NOLINT
  358,-78,-341,153,308,-220,-260,277,199,-321,-129,349,53,-360,26,355,-104,-332,177,293,-241,-241,293,177,-332,-104,355,26,-360,53,349,-129,-321,199,277,-260,-220,308,153,-341,-78,358,0,-358,78,341,-153,-308,220,260,-277,-199,321,129,-349,-53,360,-26,-355,104,332,-177,-293,241,   // NOLINT
  356,-112,-321,213,253,-293,-161,344,53,-361,61,341,-169,-288,260,206,-325,-104,357,-9,-355,121,317,-220,-247,298,153,-347,-44,360,-70,-338,177,283,-266,-199,328,95,-358,18,353,-129,-312,227,241,-303,-145,349,35,-360,78,335,-184,-277,271,192,-332,-87,359,-26,-351,137,308,-234,   // NOLINT
  353,-145,-293,266,184,-341,-44,359,-104,-317,234,220,-325,-87,360,-61,-335,199,253,-303,-129,356,-18,-349,161,283,-277,-169,347,26,-357,121,308,-247,-206,332,70,-361,78,328,-213,-241,312,112,-358,35,344,-177,-271,288,153,-351,-9,355,-137,-298,260,192,-338,-53,360,-95,-321,227,   // NOLINT
  349,-177,-260,308,104,-360,78,321,-241,-199,341,26,-355,153,277,-293,-129,358,-53,-332,220,220,-332,-53,358,-129,-293,277,153,-355,26,341,-199,-241,321,78,-360,104,308,-260,-177,349,0,-349,177,260,-308,-104,360,-78,-321,241,199,-341,-26,355,-153,-277,293,129,-358,53,332,-220,   // NOLINT
  344,-206,-220,338,18,-349,192,234,-332,-35,353,-177,-247,325,53,-356,161,260,-317,-70,358,-145,-271,308,87,-360,129,283,-298,-104,361,-112,-293,288,121,-360,95,303,-277,-137,359,-78,-312,266,153,-357,61,321,-253,-169,355,-44,-328,241,184,-351,26,335,-227,-199,347,-9,-341,213,   // NOLINT
  338,-234,-177,356,-70,-308,283,112,-360,137,266,-321,-44,351,-199,-213,347,-26,-328,253,153,-359,95,293,-298,-87,358,-161,-247,332,18,-344,220,192,-353,53,317,-271,-129,361,-121,-277,312,61,-355,184,227,-341,9,335,-241,-169,357,-78,-303,288,104,-360,145,260,-325,-35,349,-206,   // NOLINT
  332,-260,-129,360,-153,-241,341,-26,-321,277,104,-358,177,220,-349,53,308,-293,-78,355,-199,-199,355,-78,-293,308,53,-349,220,177,-358,104,277,-321,-26,341,-241,-153,360,-129,-260,332,0,-332,260,129,-360,153,241,-341,26,321,-277,-104,358,-177,-220,349,-53,-308,293,78,-355,199,   // NOLINT
  325,-283,-78,351,-227,-153,361,-161,-220,353,-87,-277,328,-9,-321,288,70,-349,234,145,-360,169,213,-355,95,271,-332,18,317,-293,-61,347,-241,-137,360,-177,-206,356,-104,-266,335,-26,-312,298,53,-344,247,129,-359,184,199,-357,112,260,-338,35,308,-303,-44,341,-253,-121,358,-192,   // NOLINT
  317,-303,-26,328,-288,-53,338,-271,-78,347,-253,-104,353,-234,-129,357,-213,-153,360,-192,-177,361,-169,-199,359,-145,-220,356,-121,-241,351,-95,-260,344,-70,-277,335,-44,-293,325,-18,-308,312,9,-321,298,35,-332,283,61,-341,266,87,-349,247,112,-355,227,137,-358,206,161,-360,184,   // NOLINT
  308,-321,26,293,-332,53,277,-341,78,260,-349,104,241,-355,129,220,-358,153,199,-360,177,177,-360,199,153,-358,220,129,-355,241,104,-349,260,78,-341,277,53,-332,293,26,-321,308,0,-308,321,-26,-293,332,-53,-277,341,-78,-260,349,-104,-241,355,-129,-220,358,-153,-199,360,-177,   // NOLINT
  298,-335,78,247,-356,153,184,-360,220,112,-347,277,35,-317,321,-44,-271,349,-121,-213,360,-192,-145,355,-253,-70,332,-303,9,293,-338,87,241,-357,161,177,-359,227,104,-344,283,26,-312,325,-53,-266,351,-129,-206,361,-199,-137,353,-260,-61,328,-308,18,288,-341,95,234,-358,169,   // NOLINT
  288,-347,129,192,-359,241,70,-325,321,-61,-247,358,-184,-137,349,-283,-9,293,-344,121,199,-360,234,78,-328,317,-53,-253,357,-177,-145,351,-277,-18,298,-341,112,206,-360,227,87,-332,312,-44,-260,356,-169,-153,353,-271,-26,303,-338,104,213,-361,220,95,-335,308,-35,-266,355,-161,   // NOLINT
  277,-355,177,129,-341,308,-53,-241,360,-220,-78,321,-332,104,199,-358,260,26,-293,349,-153,-153,349,-293,26,260,-358,199,104,-332,321,-78,-220,360,-241,-53,308,-341,129,177,-355,277,0,-277,355,-177,-129,341,-308,53,241,-360,220,78,-321,332,-104,-199,358,-260,-26,293,-349,153,   // NOLINT
  266,-359,220,61,-303,349,-169,-121,332,-328,112,177,-351,298,-53,-227,360,-260,-9,271,-358,213,70,-308,347,-161,-129,335,-325,104,184,-353,293,-44,-234,360,-253,-18,277,-357,206,78,-312,344,-153,-137,338,-321,95,192,-355,288,-35,-241,361,-247,-26,283,-356,199,87,-317,341,-145,   // NOLINT
  253,-361,260,-9,-247,360,-266,18,241,-360,271,-26,-234,359,-277,35,227,-358,283,-44,-220,357,-288,53,213,-356,293,-61,-206,355,-298,70,199,-353,303,-78,-192,351,-308,87,184,-349,312,-95,-177,347,-317,104,169,-344,321,-112,-161,341,-325,121,153,-338,328,-129,-145,335,-332,137,   // NOLINT
  241,-358,293,-78,-177,341,-332,153,104,-308,355,-220,-26,260,-360,277,-53,-199,349,-321,129,129,-321,349,-199,-53,277,-360,260,-26,-220,355,-308,104,153,-332,341,-177,-78,293,-358,241,0,-241,358,-293,78,177,-341,332,-153,-104,308,-355,220,26,-260,360,-277,53,199,-349,321,-129,   // NOLINT
  227,-353,321,-145,-95,293,-360,266,-53,-184,338,-341,192,44,-260,359,-298,104,137,-317,355,-234,9,220,-351,325,-153,-87,288,-360,271,-61,-177,335,-344,199,35,-253,358,-303,112,129,-312,356,-241,18,213,-349,328,-161,-78,283,-361,277,-70,-169,332,-347,206,26,-247,357,-308,121,   // NOLINT
  213,-344,341,-206,-9,220,-347,338,-199,-18,227,-349,335,-192,-26,234,-351,332,-184,-35,241,-353,328,-177,-44,247,-355,325,-169,-53,253,-356,321,-161,-61,260,-357,317,-153,-70,266,-358,312,-145,-78,271,-359,308,-137,-87,277,-360,303,-129,-95,283,-360,298,-121,-104,288,-361,293,-112,   // NOLINT
  199,-332,355,-260,78,129,-293,360,-308,153,53,-241,349,-341,220,-26,-177,321,-358,277,-104,-104,277,-358,321,-177,-26,220,-341,349,-241,53,153,-308,360,-293,129,78,-260,355,-332,199,0,-199,332,-355,260,-78,-129,293,-360,308,-153,-53,241,-349,341,-220,26,177,-321,358,-277,104,   // NOLINT
  184,-317,360,-303,161,26,-206,328,-358,288,-137,-53,227,-338,355,-271,112,78,-247,347,-349,253,-87,-104,266,-353,341,-234,61,129,-283,357,-332,213,-35,-153,298,-360,321,-192,9,177,-312,361,-308,169,18,-199,325,-359,293,-145,-44,220,-335,356,-277,121,70,-241,344,-351,260,-95,   // NOLINT
  169,-298,358,-335,234,-78,-95,247,-341,356,-288,153,18,-184,308,-360,328,-220,61,112,-260,347,-353,277,-137,-35,199,-317,361,-321,206,-44,-129,271,-351,349,-266,121,53,-213,325,-360,312,-192,26,145,-283,355,-344,253,-104,-70,227,-332,359,-303,177,-9,-161,293,-357,338,-241,87,   // NOLINT
  153,-277,349,-355,293,-177,26,129,-260,341,-358,308,-199,53,104,-241,332,-360,321,-220,78,78,-220,321,-360,332,-241,104,53,-199,308,-358,341,-260,129,26,-177,293,-355,349,-277,153,0,-153,277,-349,355,-293,177,-26,-129,260,-341,358,-308,199,-53,-104,241,-332,360,-321,220,-78,   // NOLINT
  137,-253,332,-361,335,-260,145,-9,-129,247,-328,360,-338,266,-153,18,121,-241,325,-360,341,-271,161,-26,-112,234,-321,359,-344,277,-169,35,104,-227,317,-358,347,-283,177,-44,-95,220,-312,357,-349,288,-184,53,87,-213,308,-356,351,-293,192,-61,-78,206,-303,355,-353,298,-199,70,   // NOLINT
  121,-227,308,-353,357,-321,247,-145,26,95,-206,293,-347,360,-332,266,-169,53,70,-184,277,-338,361,-341,283,-192,78,44,-161,260,-328,359,-349,298,-213,104,18,-137,241,-317,356,-355,312,-234,129,-9,-112,220,-303,351,-358,325,-253,153,-35,-87,199,-288,344,-360,335,-271,177,-61,   // NOLINT
  104,-199,277,-332,358,-355,321,-260,177,-78,-26,129,-220,293,-341,360,-349,308,-241,153,-53,-53,153,-241,308,-349,360,-341,293,-220,129,-26,-78,177,-260,321,-355,358,-332,277,-199,104,0,-104,199,-277,332,-358,355,-321,260,-177,78,26,-129,220,-293,341,-360,349,-308,241,-153,53,   // NOLINT
  87,-169,241,-298,338,-358,357,-335,293,-234,161,-78,-9,95,-177,247,-303,341,-359,356,-332,288,-227,153,-70,-18,104,-184,253,-308,344,-360,355,-328,283,-220,145,-61,-26,112,-192,260,-312,347,-360,353,-325,277,-213,137,-53,-35,121,-199,266,-317,349,-361,351,-321,271,-206,129,-44,   // NOLINT
  70,-137,199,-253,298,-332,353,-361,355,-335,303,-260,206,-145,78,-9,-61,129,-192,247,-293,328,-351,360,-356,338,-308,266,-213,153,-87,18,53,-121,184,-241,288,-325,349,-360,357,-341,312,-271,220,-161,95,-26,-44,112,-177,234,-283,321,-347,359,-358,344,-317,277,-227,169,-104,35,   // NOLINT
  53,-104,153,-199,241,-277,308,-332,349,-358,360,-355,341,-321,293,-260,220,-177,129,-78,26,26,-78,129,-177,220,-260,293,-321,341,-355,360,-358,349,-332,308,-277,241,-199,153,-104,53,0,-53,104,-153,199,-241,277,-308,332,-349,358,-360,355,-341,321,-293,260,-220,177,-129,78,-26,   // NOLINT
  35,-70,104,-137,169,-199,227,-253,277,-298,317,-332,344,-353,358,-361,359,-355,347,-335,321,-303,283,-260,234,-206,177,-145,112,-78,44,-9,-26,61,-95,129,-161,192,-220,247,-271,293,-312,328,-341,351,-357,360,-360,356,-349,338,-325,308,-288,266,-241,213,-184,153,-121,87,-53,18,   // NOLINT
  18,-35,53,-70,87,-104,121,-137,153,-169,184,-199,213,-227,241,-253,266,-277,288,-298,308,-317,325,-332,338,-344,349,-353,356,-358,360,-361,360,-359,357,-355,351,-347,341,-335,328,-321,312,-303,293,-283,271,-260,247,-234,220,-206,192,-177,161,-145,129,-112,95,-78,61,-44,26,-9,   // NOLINT
};

}   // namespace xvc
